如何逐个将所有修订从主干复制到分支

时间:2015-12-07 06:56:42

标签: svn

我有以下存储库结构

A         repo1\trunk
A         repo1\branches
Adding         repo1\branches
Adding         repo1\trunk
Committed revision 1.

A         repo1\trunk\sources
Adding         repo1\trunk\sources
Committed revision 2.

A         repo1\trunk\sources\file1.txt
Adding         repo1\trunk\sources\file1.txt
Transmitting file data .  
Committed revision 3.

A         repo1\trunk\sources\file2.txt
Adding         repo1\trunk\sources\file2.txt
Transmitting file data .
Committed revision 4.

是否有可能逐个复制所有修订从一个树干到另一个树枝? 像这样:

svn copy svn://localhost/repo1/trunk@2 svn://localhost/repo1/branches/b1 -m "m1" 
svn copy svn://localhost/repo1/trunk@3 svn://localhost/repo1/branches/b1 -m "m2" 
svn copy svn://localhost/repo1/trunk@4 svn://localhost/repo1/branches/b1 -m "m3" 
etc

或者在这种情况下,修订应该合并一个接一个? 因此,我需要将所有修订从主干复制到分支b1 abd具有以下分支b1的结构:

b1/sources/file1.txt
b1/sources/file2.txt

1 个答案:

答案 0 :(得分:2)

您无需单独复制每个修订版。如果您只关心file1.txt子目录中同时包含file2.txtsources,则只需要创建最新主干的分支并完成它:

svn cp svn://localhost/repo1/trunk svn://localhost/repo1/branches/b1 -m 'Create branch'

如果出于某种原因 - 这对我来说并不是很清楚 - 你真的需要通过修订进行修订,正确的策略是在某个修订版本中创建一个分支,例如:

svn cp svn://localhost/repo1/trunk@1 svn://localhost/repo1/branches/b1 -m 'Create branch'

然后合并所有进一步的修订,例如像这样

svn co svn://localhost/repo1/branches/b1
cd b1
svn merge ^/trunk -c 2
svn ci -m 'Merged revision 2'
svn up
svn merge ^/trunk -c 3
svn ci -m 'Merged revision 3'
svn up
...