branches の修正内容を trunk へ適用する手順

よく忘れるので自分用にメモ


* 前提
Subversionディレクトリ構成を以下とします。

/var/svn/
 foo/
   branches/
     foovar_branch/
   tags/
     release-1.0.0
   trunk/
     ...

SVNのインストール先は /var/svn/foo となる。


1. プロジェクトをチェックアウトして、trunkディレクトリへ移動する

$ mkdir svn_work
$ cd svn_work
$ svn co file:///var/svn/foo
$ ls
foo


2. ブランチの開始リビジョン番号を確認する

$ svn log --stop-on-copy file:///var/svn/foo/branches/foovar_branch
------------------------------------------------------------------------
r111 | (snip)
(snip)
r101 | (snip)

hogehoge
------------------------------------------------------------------------

※この場合、101 が開始リビジョン番号になります。


3. ブランチと trunk の差分を trunk へ適用する

$ cd foo/trunk
$ svn merge -r 101:HEAD file:///var/svn/foo/branches/foovar_branch


4. 3を commit する

$ svn commit -m 'Merge foo branches/foovar_branch to trunk .'


5. ブランチを削除する

$ svn del file:///var/svn/foo/branches/foovar_branch -m 'Delete foobranches/foovar_branch .'


6. タグを作成する

$ svn copy file:///var/svn/foo/trunk
file:///var/svn/foo/tags/release-1.0.1 -m 'Tags foo trunk totags/release-1.0.1 .'


1〜6を実行したリポジトリの結果

/var/svn/
 foo/
   branches/
   tags/
     release-1.0.0
     release-1.0.1
   trunk/
     ...