#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]]%%