Subversion

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

Subversion」への2件のフィードバック

  1. 今日、ハロー!プロジェクトを知りました。

    ハロー!プロジェクト(Hello! Project)は株式会社アップフロントグループの登録商標(登録4625323)で、登録呼称は「ハロープロジェクト」である。

    こんな一般的な言葉が商標登録されるなんて、Windowsなみに驚きです。

コメントは停止中です。

同じカテゴリの記事: Linux