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なのが気になります。