2009-12-03 181 views
1

我們需要合併分支到主幹的更改。
而且我們不需要我們在樹幹創建後做的任何更改。
1.我們不需要合併源代碼 - 我們需要用分支中的源代替trunk中的源代碼。 2.我們不需要在trunk中創建但在分支中不存在的文件和目錄(或在分支中刪除)。將分支合併到主幹。更改分支的主幹

在這種情況下合併源代碼會更好嗎?

現在我有主幹和分支B1:
http://svnhost/svn/mtest/trunk
http://svnhost/svn/mtest/branches/b1

  1. 我能搬到後備箱一些分支目錄和移動分支B1主幹:

    SVN移動http://svnhost/svn/mtest/trunkhttp://svnhost/svn/mtest/branches/branch4trunk
    svn副本http://svnhost/svn/mtest/branches/b1http://svnhost/svn/mtest/trunk

  2. 我可以刪除所有不需要的文件,並在樹幹目錄的然後合併分支到主幹

    SVN共同http://svnhost/svn/mtest/trunk
    CD幹線
    SVN合併--reintegrate http://svnhost/svn/mtest/branches/b1

    位有可能強制不合並文件,但將其替換?

在這些情況下是否有任何缺陷?
我們使用Subversion 1.5

我不喜歡第一種情況,因爲我需要將SVN源複製到MKS存儲庫。
當這些文件從SVN存儲庫中刪除時,我們的工具會自動從MKS存儲庫中刪除文件。
但是,如果我將分支移動到主幹,則不會有任何有關此類文件的操作。
所以我必須從MKS庫中手動刪除大量文件。
這不是一個好主意:(
我想有修改/添加或刪除實際行動。

回答

1

我會做這樣的:

 
svn co http://svnhost/svn/mtest/trunk 
cd trunk 
svn merge http://svnhost/svn/mtest/trunk http://svnhost/svn/mtest/branches/b1 

這是說,「採取讓我從變化樹幹分支,並將它們應用於樹幹。「

換句話說,「告訴我將把樹幹變成樹枝的變化......並做它們!「

+0

但在這種情況下,分支機構的歷史記錄將不會被保存? 它是正確的嗎? – 2009-12-03 15:05:25

+0

我不確定你的意思,所有的歷史記錄仍然存在。 – 2009-12-03 15:22:03

+0

我希望看到從trunk和分支文件的所有修訂。 這可能嗎? TortoiseSVN客戶端可以這樣做嗎? – 2009-12-03 15:49:40

0

我已經做了選擇1我和可以報告任何隱患。如果我理解正確的話,你想!吹走軀幹和用樹枝代替徹底,所以......只是做

+0

請閱讀更新 我可以使用第一種方法,但我不想這樣做:( – 2009-12-03 14:45:46

0

因爲製造分支你可以回滾在樹幹所有的變化,只要簡單的把分支重新融入行李箱的正常方式。

這基本上是因爲主幹的所有更改了反向合併分支,並給你一個修正,將它們全部刪除,然後分支變化進來頂部