• 追加された行はこの色です。
  • 削除された行はこの色です。
* svn merge(マージ) [#j24b1180]

** ブランチを作る [#l651db47]
 $ svn copy file:///var/svn/trunk file:///var/svn/branch/1
 Committed revision 4.

** ブランチをチェックアウトする [#n97ceeb1]
 $ svn checkout file:///var/svn/branch/1 $HOME/branch

** ブランチでファイルを編集・コミットする [#lbdca408]
 $ cd $HOME/branch
 $ echo 1 > 1.txt
 $ svn commit -m ''
 送信しています              1.txt
 ファイルのデータを送信しています .
 Committed revision 5.
 
 $ touch 2.txt
 $ svn add 2.txt
 $ svn commit -m ''
 追加しています              2.txt
 ファイルのデータを送信しています .
 Committed revision 6.

** ブランチをトランクにマージする [#l88890b5]
*** トランクをチェックアウトする [#n08aa815]
 $ svn checkout file:///var/svn/trunc $HOME/trunk

*** マージ内容の差分を確認する [#e2de5ec0]
 $ svn diff file:///var/svn/branch/1@4 file:///var/svn/branch/1@6
 Index: 2.txt
 ===================================================================
 Index: 1.txt
 ===================================================================
 --- 1.txt       (リビジョン 4)
 +++ 1.txt       (リビジョン 6)
 @@ -0,0 +1 @@
 +1

*** マージを実行する [#w7b7264b]
 $ svn merge file:///var/svn/branch/1@4 file:///var/svn/branch/1@6
 --- r5 から r6 までを '.' にマージしています:
 A    2.txt
 U    1.txt
 --- Recording mergeinfo for merge of r5 through r6 into '.':
  U   .
- マージ対象の指定の仕方は、他にも→ svn merge -r 4:HEAD file:///var/svn/branch/1
- --dry-runオプションを付けると実行を確認できる。

*** マージをコミットする [#geb44ebc]
 $ svn commit -m ''
 送信しています              .
 送信しています              1.txt
 追加しています              2.txt
 ファイルのデータを送信しています .
 Committed revision 7.

** ブランチのログを参照する [#l7a50734]

 $ svn log --stop-on-copy file:///$HOME/tmp/svn/branch/1
 ------------------------------------------------------------------------
 r6 | taro | 2012-04-09 23:36:46 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------
 r5 | taro | 2012-04-09 23:36:34 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------
 r4 | taro | 2012-04-09 23:35:59 +0900 (月, 09  4月 2012) | 3 lines
 ------------------------------------------------------------------------

↑--stop-on-copyオプションでブランチを作って以降のログを参照できる。オプションを付けないと↓。

 $ svn log file:///$HOME/tmp/svn/branch/1
 ------------------------------------------------------------------------
 r6 | taro | 2012-04-09 23:36:46 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------
 r5 | taro | 2012-04-09 23:36:34 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------
 r4 | taro | 2012-04-09 23:35:59 +0900 (月, 09  4月 2012) | 3 lines
 ------------------------------------------------------------------------
 r2 | taro | 2012-04-09 23:34:41 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------
 r1 | taro | 2012-04-09 23:34:15 +0900 (月, 09  4月 2012) | 1 line
 ------------------------------------------------------------------------

** トランクで行われたコミットをブランチに反映させるには? [#s1a3e327]
 cd $HOME/branch2
 svn merge file:///var/svn/trunk
トランクを指定してマージする。

** 参考 [#ta76bfe9]
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.merge.html



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS