2011-05-09 135 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

相關問題