#author("2022-01-04T17:29:25+00:00","","")
#author("2022-10-24T23:57:55+09:00","","")
#topicpath();

////////////////////////////////////////////////////////////////////////////////
* 目次 [#maacf98d]
#contents();

////////////////////////////////////////////////////////////////////////////////
* コマンド [#command]
//==============================================================================
** svn co <URI> / svn checkout <URI> [#za6d5742]
- 新規にリポジトリから作業コピーを取得する。
-- 取得対象を <URI> で指定する。書式は以下のようになる:
 file://     # ホスト内のパスを指定する場合
 http://
 https://
 svn+ssh://<host-name>:<path>  # ssh経由でホストとそのパスを指定する場合

//==============================================================================
** svn info [#i86933be]
- 作業コピーの情報を表示する
-- 実行例
 $ svn info
 パス: .
 Working Copy Root Path: /home/user-name/work/svn/devel
 URL: svn+ssh://127.0.0.1/home/user-name/work/svn_repos/devel
 Relative URL: ^/
 リポジトリのルート: svn+ssh://127.0.0.1/home/user-name/work/svn_repos/devel
 リポジトリ UUID: 499b9f36-9277-442f-a6fa-65a94d53d8f6
 リビジョン: 102
 ノード種別: ディレクトリ
 準備中の処理: 特になし
 最終変更者: user-name
 最終変更リビジョン: 102
 最終変更日時: YYYY-DD-MM HH:MM:SS +0900 (YYYY年MM月DD日 (曜日))



//==============================================================================
** svn st [#o8fbe4a4]
- 作業コピー内の状態を表示する
-- 実行例:
 $ svn st
 M       test/c++/funcptr/Makefile
 ?       test/c++/funcptr/Makefile.bkup
- 出力の凡例
|~mark |~description |
|A     |svn add で追加された(未commit)。 |
|C     |管理対象。コンフリクトしている。 |
|D     |管理対象。svn rm で削除されている(未commit)。 |
|I     |無視。|
|M     |管理対象。最終 commit の状態から内容に変更がある。 |
|R     |管理対象。リプレースされた。 |
|X     | |
|?     |管理対象外。 |
|!     |管理対象。svn 以外のコマンドで削除されている。 |

//==============================================================================
** svn add <path> [#e7a38ede]
- 管理対象外のファイルを、新規に管理対象に加える。
- svn add 実行後、 svn ci (commit) する必要がある。


//==============================================================================
** svn ci / svn commit [#gcfc97fe]

//==============================================================================
** svn revert <file-path> [#j759eb10]
- 指定したファイルを、最終 commit の状態に復元する。

//==============================================================================
** svn log [option] [path] [#fce9c2e0]
- ログを表示する。
- オプション
|~option |~description |
|[path]  |その [path] のログのみを出力する。 |
|-v      |詳細表示。具体的には、その commit で変更されたパスの情報が追加で表示される。 |
- 作業コピーにはログの情報はないため、親となるリポジトリと通信出来ない場合はログを表示出来ない。

//==============================================================================
** svn diff [#wa9bd421]
- 差分を表示する
- 書式


//==============================================================================
** svn blame <path-to-file> [#d50853ad]
- 指定したフィルの、行単位での最終 commit 情報を出力する。

//==============================================================================
** svn help [sub-command] [#d84bcfa8]
- svn のヘルプを表示する。
- 使い方、詳細を知りたい場合は、man svn よりもこちらを見ると良い。
- 引数に [sub-command] を与えなかった場合は、svn の全般的な説明と、使用出来るサブコマンドの一覧を表示する
- 引数に [sub-command] を与えた場合は、指定したサブコマンド詳細説明を表示する



////////////////////////////////////////////////////////////////////////////////
* 参考リンク [#link]

////////////////////////////////////////////////////////////////////////////////
* tools [#b0d546ef]
** psvn.el (+ emacsen) [#j0d4764c]
emacsen 上でSubversionを使うツールがある。psvn.el というファイル名で、ネットで容易に手に入る。

- [[psvn.el 一次配布元>http://www.xsteve.at/prg/emacs/psvn.el]]
- [[Commentaryの和訳(www.chibutsu.org)>http://www.chibutsu.org/faf/WebWiki/column/psvn.html]]

psvn.el の便利なところの一つは、M-x:svn-status とした後、リポジトリとの修正差分を比較・編集したいときに、リスト中の対象ファイル名の上にカーソルを合わせて "E" とTypeするとediffモードで差分の比較・編集が行えるところである。

emacsen使いなら、Subversionクライアントに関しては、これ一つがあれば十分であろう。
一時期、XEmacsでは動作しなかったが、現在では emacs, XEmacs どちらでも問題なく動作する。

${HOME}/.emacs (XEmacsの場合は、${HOME}/.xemacs/init.el)には、次のように記述する:
 (setq svn-status-svn-environment-var-list '("LC_MESSAGES=C")) ; commit時など、日本語になってしまうと少々厄介なので
 (load-library "~/.xemacs/psvn.el")	; psvn.el を、${HOME}/.xemacs/psvn.el に置いた場合
 ;;(setq process-coding-system-alist (cons '("svn". euc) process-coding-system-alist))

- psvn.el のキーバインド
|~bindings      |~command                                  |~description |
|M-x svn-status |                                          |'svn -status -v'を実行し, 結果をsvn-statusバッファに表示する |
|g              |svn-status-update:                        |'svn status -v'を実行           |
|C-u g          |svn-status-update:                        |'svn status -vu'を実行	    |
|=              |svn-status-show-svn-diff                  |'svn diff'を実行		    |
|l              |svn-status-show-svn-log                   |'svn log'を実行		    |
|i              |svn-status-info                           |'svn info'を実行		    |
|r              |svn-status-revert                         |'svn revert'を実行		    |
|V              |svn-status-resolved                       |'svn resolved'を実行	    |
|U              |svn-status-update-cmd                     |'svn update'を実行		    |
|c              |svn-status-commit-file                    |'svn commit'を実行		    |
|a              |svn-status-add-file                       |'svn add --non-recursive'を実行 |
|A              |svn-status-add-file-recursively           |'svn add'を実行		    |
|+              |svn-status-make-directory                 |'svn mkdir'を実行		    |
|R              |svn-status-mv                             |'svn mv'を実行		    |
|C-d            |svn-status-rm                             |'svn rm'を実行		    |
|M-c            |svn-status-cleanup                        |'svn cleanup'を実行		    |
|b              |svn-status-blame                          |'svn blame'を実行		    |
|RET            |svn-status-find-file-or-examine-directory |				    |
|^              |svn-status-examine-parent		   |				    |
| ~             |svn-status-get-specific-revision	   |				    |
|E              |svn-status-ediff-with-revision		   |				    |
|s              |svn-status-show-process-buffer		   |				    |
|e              |svn-status-toggle-edit-cmd-flag	   |				    |
|?              |svn-status-toggle-hide-unknown		   |				    |
|_              |svn-status-toggle-hide-unmodified	   |				    |
|m              |svn-status-set-user-mark		   |				    |
|u              |svn-status-unset-user-mark		   |				    |
|$              |svn-status-toggle-elide		   |				    |
|DEL            |svn-status-unset-user-mark-backwards	   |				    |
|* !            |svn-status-unset-all-usermarks		   |				    |
|* ?            |svn-status-mark-unknown		   |				    |
|* A            |svn-status-mark-added			   |				    |
|* M            |svn-status-mark-modified		   |				    |
|.              |svn-status-goto-root-or-return		   |				    |
|f              |svn-status-find-file			   |				    |
|o              |svn-status-find-file-other-window	   |				    |
|v              |svn-status-view-file-other-window	   |				    |
|I              |svn-status-parse-info			   |				    |
|P l            |svn-status-property-list		   |				    |
|P s            |svn-status-property-set		   |				    |
|P d            |svn-status-property-delete		   |				    |
|P e            |svn-status-property-edit-one-entry	   |				    |
|P i            |svn-status-property-ignore-file	   |				    |
|P I            |svn-status-property-ignore-file-extension |				    |
|P C-i          |svn-status-property-edit-svn-ignore	   |				    |
|P k            |svn-status-property-set-keyword-list	   |				    |
|P y            |svn-status-property-set-eol-style	   |				    |
|h              |svn-status-use-history			   |				    |
|q              |svn-status-bury-buffer			   |				    |



////////////////////////////////////////////////////////////////////////////////
** dsvn.el (+ emacsen) [#r313fffc]
psvn.el よりも動作が軽快。但しpsvn.el とは共存出来ないので注意。&br;
#個人的にはほとんど使っていないので参考程度(お試しで使ってみた程度)
- [[dsvn.el>http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/dsvn.el]]
- [[参考サイト>http://dev.ariel-networks.com/Members/matsuyama/dsvn]]

////////////////////////////////////////////////////////////////////////////////
** eSvn [#j3a34e28]
eSvnは、Linux(でも)使える、Subversionコマンド(svn)のGUIフロントエンドである(Windowsでも動作する)。
[[TortoiseSVN>http://tortoisesvn.bluegate.org/Help/dailyuseguide.html]]に慣れてしまった(元)Windowsユーザ向け、と言えなくもない。
Linuxに、GNOMEと並んで良く採用されている統合環境KDEと同じQtを使って書かれていて、動作も安定している。
但し、eSvnでsvn+ssh:// なリポジトリにアクセスしに行く場合は、コマンドラインからではなく、必ずメニューなどに登録して置いて、そこから起動する必要がある。そうしないと、パスワードを訊かれても入力するダイアログが開かない(コマンドラインで起動した場合、その起動したコンソールにパスワードを訊くプロンプトが出るが、そこからは入力が出来ない)ので、にっちもさっちもいかなくなってしまうので注意が必要である。
- 本家:[[eSvn>http://zoneit.free.fr/esvn/changelog.php]]
- 入手先:[[eSvn>https://sourceforge.net/projects/esvn/]]
- %%解説:[[Subversion/eSvn - てんぷらメモ>http://terai.xrea.jp/Subversion/eSvn.html]]%%

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS