ブランチを分けて開発しマージするまでの手順
0. 以下のような状態で、dir以下のファイルを別のブランチに分けて、開発を分岐したい。
- リポジトリ
- file:///SVN_ROOT/PRJECT_NAME
- 元の開発コピー
- /ORIG/work
- 分岐後の開発コピー
- /NEW/mywork
- 最初のファイル構成(/ORIG/work以下)
1.pl
2.pl
dir/
3.pl
1. ブランチ用のディレクトリを作る。
cd /ORIG/work
mkdir branch
svn add dir
svn commit -m ''
-----------------
1.pl
2.pl
dir/
3.pl
branch/
-----------------
2. 分岐後の開発コピーを作る。
cd /NEW
svn co file:///SVN_ROOT/PRJECT_NAME mywork
-----------------
A mywork/1.pl
A mywork/2.pl
A mywork/branch
A mywork/dir
A mywork/dir/3.pl
-----------------
3. ブランチを作る。
cd mywork
svn copy dir branch/dir
svn commit -m ''
-----------------
1.pl
2.pl
dir/
3.pl
branch/
dir/
3.pl
-----------------
4. ブランチの中のファイルを修正して、コミットする。
vi branch/dir/3.pl
vi branch/dir/4.pl
svn add branch/dir/4.pl
svn commit -m ''
5. 元のディレクトリでの開発を続ける。
cd /ORIG/work
svn update
-----------------
1.pl
2.pl
dir/
3.pl
branch/
dir/
3.pl
4.pl
-----------------
5. (元の)ファイルを修正して、コミットする。
vi dir/3.pl
svn commit -m ''
6. ブランチの中のファイルの修正を元のファイルにマージする。
6.1 ログをみてブランチが出来たリビジョン(10とする)を確認する。
svn log branch/dir
6.2 マージを実行する。(最新のリビジョンは15とする)
svn merge -r 10:15 file:///SVN_ROOT/PRJECT_NAME/branch/dir dir
-----------------
U dir/3.pl
A dir/4.pl
-----------------
7. マージして出来たファイルをコミットする。
svn commit -m ''
マージするときは、以下のようにドライランして確認するとよい。
svn merge --dry-run
2.や3.でのディレクトリの作り方は、開発状況にあわせて、サブディレクトリ以下だけを指定するなどする。