- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-10-24T23:57:55+09:00","","")
#topicpath();
/////////////////////////////////////////////////////////////////////////////////////////
* 参考ページ [#wb167742]
- [[Subversion メモ>http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.html]]
- [[Subversion によるバージョン管理>http://subversion.bluegate.org/doc/book.html]]
////////////////////////////////////////////////////////////////////////////////
* 目次 [#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]]%%