我們從主幹重構完成的樹幹創建了一個分支。與此同時,主幹進行了一些修正,並進行了一些修正。我們不需要想要在分支上進行這些更改,所以我們不希望將「中繼」合併到分支,因爲我們不想混合新舊代碼。但沒有這個,我不能將分支重新集成到主幹。如果我不能「重新整合」,我如何「強制」樹幹上的一個分支?
有沒有辦法強制樹幹「原樣」分支?我認爲一個想法是撤銷(「反向合併」)主幹回到分支開始的版本,然後在分支上合併它是安全的 - 什麼都不應該發生,然後我可以重新整合。你怎麼看)
我們從主幹重構完成的樹幹創建了一個分支。與此同時,主幹進行了一些修正,並進行了一些修正。我們不需要想要在分支上進行這些更改,所以我們不希望將「中繼」合併到分支,因爲我們不想混合新舊代碼。但沒有這個,我不能將分支重新集成到主幹。如果我不能「重新整合」,我如何「強制」樹幹上的一個分支?
有沒有辦法強制樹幹「原樣」分支?我認爲一個想法是撤銷(「反向合併」)主幹回到分支開始的版本,然後在分支上合併它是安全的 - 什麼都不應該發生,然後我可以重新整合。你怎麼看)
假設你的罰款失去這些變化那麼這是一個可接受的解決方案,雖然你可能要考慮乾脆重新命名當前樹幹分支和重命名分支主幹:
svn move https://path/to/repo/trunk https://path/repo/branches/newbranchname
svn move https://path/to/repo/branches/refactoring https://path/to/repo/trunk
雖然,你真的確定你不想從trunk中引入更改嗎?你可能想仔細考慮一下。即使你已經做了大量的重構,如果在trunk上可用的工作已經完成,你仍然可能要仔細看看它,以便所取得的進展不會浪費。
您可以使用,正如您所提到的反向合併。結帳中繼線
svn merge -rHEAD:RevisionTheBranchWasCreated ^/trunk
這將撤消在創建分支後所做的所有更改。之後,合併應該沒有任何問題。
更新:^/trunk
只適用於Linux。在Windows上,您需要使用^^/trunk
。
謝謝。不確定符號「^/trunk」,這是存儲庫還是工作副本的路徑? – davka 2010-05-04 14:18:47
對不起。^/在工作副本中使用。如果你在外面,你必須使用完整的URL(^ /是自1.6.X以來的SVN) – khmarbaise 2010-05-04 14:37:06
非常感謝。這些變化是我的同事的修補程序,他們聲稱他們都存在於新版本中。 – davka 2010-05-04 14:17:49