2009-11-18 64 views
31

在顛覆中,我現在創建了一個分支,我想將它合併回主幹。我應該使用哪個選項?重新整合一個分支vs合併一個修訂版本

復興分支

合併範圍的修訂

我用合併一個版本範圍的,但我得到的各種樹衝突的錯誤。任何想法這兩者之間有什麼不同?

+0

可能重複的[SVN合併一系列的修訂與重新合併](http://stackoverflow.com/questions/6575325/svn-merge-a-range-of-revisions-vs-reintegrate) – parvus 2014-03-26 13:13:19

回答

35

用樹枝工作時,你應該定期合併從樹幹修訂的範圍到分支keep the branch in sync。如果您沒有將任何版本號傳遞給svn merge,並且您的svn服務器版本是1.5或更高版本,它將跟蹤您之前完成的合併,並自動合併僅更新的修訂版本。

當分支完成時,您應該最後一次合併更改,然後reintegrate它回到主幹。

4

烏龜SVN合併VS再集成解釋:

TortoiseSVN Documentation

+1

zachary從未提及使用烏龜,所以我不一定會認爲這是「直接從源頭上」。 – Powerlord 2009-11-18 19:18:53

+0

我會編輯我的帖子;但你有點迂腐,不是嗎? Tortoise是一個SVN客戶端。如果我正在使用SVN命令行,Tortoise,SVNCOM或WebSVN,合併與重新合併會有什麼不同? – 2009-11-18 19:33:51

+2

我會很殘忍地誠實:龜甲的合併一系列的修訂選項比svn命令行客戶端的合併是一個很多的stupider,因爲當你將修訂列表留空時發生的行爲。 – Powerlord 2009-11-18 19:48:08

6

以下是我通常遵循的合併步驟。

1.

SVN的日誌-v --stop上覆制 http://mysvnrepo/mybranch

這會給你回購版本,當你第一次創建分支。 說它是AAAA。

2.

SVN日誌-v -rAAAA:HEAD http://myrepo/trunk

你拿出分支之後這會給你的行李箱中所做的更改。這不是必須的,但我用它來了解我目前應該合併的內容。

3.

如果步驟2。報道主幹的修改,到分支的工作空間和運行

SVN合併--dry經營-rAAAA:HEAD http://myrepo/trunk

這將報告自從您分支到mybranch以來在樹幹中所做的所有更改 - 通過查看並重新運行沒有--dry-run選項的命令來執行實際合併。

4.

提交分支工作區後合併相關評論。 (例如,「從中繼版本AAAA到XXXX合併的更改」 - 其中XXXX是當前的HEAD版本)這會引起HEAD說YYYY版本。

5.

接着在軀幹工作區中,類型

SVN合併--dry運行-rAAAA:HEAD http://myrepo/branch

這應該報告直到現在創建分支後所做的更改。 查看報告以驗證合併/衝突等情況,然後運行沒有--dry-run選項的命令,實際執行合併。

6.

解決衝突,如果用手任意,運行svn決心告訴你的衝突現在都解決了回購,然後執行與相關信息的提交,例如「合併從mybranch主幹 - 修訂版AAAA至YYYY包含的更改「。這有助於下一次運行日誌,然後您可以簡單地執行從YYYY到HEAD的下一次合併。

相關問題