2011-05-09 54 views
2

我们没有下丑陋的东西:如何重新整合SVN中的已重新集成和回滚的分支?

svn history

那么,我们怎样才能实现另一个reintegrate

到目前为止我尝试了什么?

  • 好吧,明显的合并 - 残酷地失败!
  • 创建一个补丁,并把它应用到trunk(这应该工作,因为它的diff只没有SVN文件...)
  • 创建另一个分支@干线R101和合并所有从第一分支的变化 - 惨遭失败: )

编辑:

合并,相关信息干线不显示所需的分支机构的任何合并版本(因为我已经与R101推出他们回来)

回答

6

该守ld只是我遇到的一个特殊情况:Undo reverse merge in Subversion, or double-reverse merge

我建议尝试只是回滚r101。

编辑

好吧,假设你的回购被设置如下:

svnadmin create mergetest 
svn co file:///home/adam/tmp/mergetest mergetest-co 
cd mergetest-co/ 
svn mkdir trunk 
svn mkdir branches 
svn ci -m "Initial setup" 

echo "Hello, world!" > trunk/test 
svn add trunk/test 
svn ci -m "Initial trunk changes" 

svn cp file:///home/adam/tmp/mergetest/trunk file:///home/adam/tmp/mergetest/branches/branch -m "Creating branch" 
svn up 

echo "Change on trunk." >> trunk/test 
svn ci -m "Change on trunk" 

svn merge file:///home/adam/tmp/mergetest/trunk branches/branch 
svn ci -m "Merge from trunk" 

echo "Change on branch." >> branches/branch/test 
svn ci -m "Change on branch" 

svn up 
svn merge --reintegrate file:///home/adam/tmp/mergetest/branches/branch trunk 
svn ci -m "Reintegrate merge" # Revision 7                                   

svn merge -c -7 trunk trunk 
svn ci -m "Undoing reintegration" # Revision 8 

此时,撤消撤消工作:svn merge -c -8 trunk trunk。此外,再次重新整合工作:svn merge --reintegrate file:///home/adam/tmp/mergetest/branches/branch trunk。由于您的重新整合被回滚,所以再次重新整合应该没有问题。如果它不起作用,我的设置必须与您的设置不匹配,所以其他一些细节必须是问题所在。

+2

嗯,这可能比我第一次想到的更复杂。睡觉后我得考虑一下。如果你绝望,你可以尝试手动编辑mergeinfo,但你必须确保你知道你在做什么。说到这一点,你可以发布当前的mergeinfo for trunk吗? – 2011-05-09 07:40:57

+0

:)只要应用一个补丁,会不会更容易? ... – 2011-05-09 09:42:14

+0

请参阅我的关于'merg-info'的信息编辑 – 2011-05-09 11:33:39

相关问题