如何在SVN中重新集成已经重新集成和回滚的分支?

时间:2011-05-09 06:57:00

标签: svn svn-reintegrate

我们做了以下丑陋的事情:

svn history

那么,我们如何才能实现另一个reintegrate

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

  • 嗯,显而易见的合并 - 残忍地失败了!
  • 创建一个补丁并将其应用于trunk(这应该可行,因为它只是在没有svn的情况下区分文件...)
  • 创建另一个分支@ trunk r101并合并来自第一个分支的所有更改 - 粗暴地失败:)

修改

trunk的merge-infos不会显示所需分支的任何合并修订(因为我已经用r101将它们回滚)

1 个答案:

答案 0 :(得分:6)

这应该只是我遇到问题的一个特例: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。由于您的重新整合被回滚,因此再次重新整合应该没有任何问题。如果它不起作用,我的设置必须与您的设置不匹配,因此其他一些细节必定是问题。