Subversionのコマンドメモ。
リポジトリの作成
# mkdir /var/svn # svnadmin create /var/svn # chown -R hiro345:hiro345 /var/svn
インポート
$ svn --version $ echo hello > hello.txt $ echo Hi > hi.txt $ svn import -m "Hello project" . file:///var/svn/kei/trunk 追加しています hello.txt 追加しています hi.txt リビジョン 1 をコミットしました。
チェックアウト
$ mkdir ../work $ cd ../work $ svn co file:///var/svn/kei/trunk kei A kei/hello.txt A kei/hi.txt リビジョン 1 をチェックアウトしました。
編集と差分の確認
$ cd kei $ echo "Hello, Micky" >> hello.txt $ svn status hello.txt M hello.txt $ svn diff hello.txt Index: hello.txt =================================================================== --- hello.txt (リビジョン 1) +++ hello.txt (作業コピー) @@ -1 +1,2 @@ hello +Hello, Micky
コミットとログの確認
$ svn commit -m "Added Hello, Micky" 送信しています hello.txt ファイルのデータを送信中です. リビジョン 2 をコミットしました。 $ LANG=C svn log hello.txt ------------------------------------------------------------------------ r2 | hiro345 | 2005-12-15 20:06:55 +0900 (Thu, 15 Dec 2005) | 1 line Added Hello, Micky ------------------------------------------------------------------------ r1 | hiro345 | 2005-12-15 19:56:43 +0900 (Thu, 15 Dec 2005) | 1 line Hello project ------------------------------------------------------------------------ $ LANG=C svn log --verbose hello.txt ------------------------------------------------------------------------ r2 | hiro345 | 2005-12-15 20:06:55 +0900 (Thu, 15 Dec 2005) | 1 line Changed paths: M /kei/trunk/hello.txt Added Hello, Micky ------------------------------------------------------------------------ r1 | hiro345 | 2005-12-15 19:56:43 +0900 (Thu, 15 Dec 2005) | 1 line Changed paths: A /kei A /kei/trunk A /kei/trunk/hello.txt A /kei/trunk/hi.txt Hello project ------------------------------------------------------------------------
ディレクトリへのチェックアウト
$ cd ..
$ svn co file:///var/svn/kei/trunk shu
A shu/hello.txt
A shu/hi.txt
リビジョン 2 をチェックアウトしました。
$ cd kei/
$ echo "Hi, Micky" >> hi.txt
$ svn commit -m "Added Hi, Micky"
送信しています hi.txt
ファイルのデータを送信中です.
リビジョン 3 をコミットしました。
$ cd ../shu
$ svn status --show-updates
* 2 hi.txt
状態の背景となるリビジョン: 3
$ svn diff -rHEAD hi.txt
Index: hi.txt
===================================================================
--- hi.txt (リビジョン 3)
+++ hi.txt (作業コピー)
@@ -1,2 +1 @@
Hi
-Hi, Micky
$ svn update
U hi.txt
リビジョン 3 に更新しました。
競合
$ echo "Hi, Minny" >> hi.txt $ svn commit -m "Added Hi, Minny" 送信しています hi.txt ファイルのデータを送信中です. リビジョン 4 をコミットしました。 $ cd ../kei $ echo "Hi, Pluto" >> hi.txt $ svn commit -m "Added Hi, Pluto" 送信しています hi.txt svn: コミットに失敗しました (詳しい理由は以下のとおりです): svn: '/kei/trunk/hi.txt' (トランザクション '4-1' 中) はリポジトリ側と比べて古く なっています $ svn update C hi.txt リビジョン 4 に更新しました。 $ cat hi.txt Hi Hi, Micky <<<<<<< .mine Hi, Pluto ======= Hi, Minny >>>>>>> .r4
<<<<<<< .mineと>>>>>>> .r4に囲まれたところが競合しているので、編集してマージします。
$ vi hi.txt $ cat hi.txt Hi Hi, Micky Hi, Minny Hi, Pluto
衝突状態を解消してからコミットします。
$ svn resolved hi.txt 'hi.txt' の衝突状態を解消しました $ svn commit -m "Added Hi, Pluto" 送信しています hi.txt ファイルのデータを送信中です. リビジョン 5 をコミットしました。
ネットワークプロトコル
$ svn co svn://five.sssg.org/var/svn/kei/trunk kei $ svn co svn+ssh://five.sssg.org/var/svn/kei/trunk el $ svn co http://five.sssg.org/svn/kei/trunk em
今日、ハロー!プロジェクトを知りました。
こんな一般的な言葉が商標登録されるなんて、Windowsなみに驚きです。
Hello Projectなのが気になります。