我有以下存储库结构
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
答案 0 :(得分:2)
您无需单独复制每个修订版。如果您只关心file1.txt
子目录中同时包含file2.txt
和sources
,则只需要创建最新主干的分支并完成它:
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
...