2009-12-03 119 views
2

軀幹我有這樣的文件夾結構:合併標籤與顛覆

\ MyProject的\分支機構\ V1.2

\ MyProject的\行李箱

我需要合併V1.2回主幹。 v1.2修訂版104和105.中繼線從57-65和106.106修訂版將刪除v1.2文件夾中不存在的文件夾。

我的設置是基於文件的。我在樹幹試過這樣:

的MacBook:樹幹爲myuser $ svn merge的-r104:105 「文件:///Developer/Main%20Repository/myproject/branches/v1.2」

我有三個衝突並解決它們。但是,我沒有看到任何文件已在主幹中更新。我是否需要做其他事情來完成合並?

- 編輯 -

我真想整個標籤\ 1.2分支合併到主幹。所以我跑了:

svn merge "file:///Developer/Main%20Repository/myproject/branches/v1.2" 

並解決了幾個衝突。有沒有辦法讓我確定兩個分支現在是否一樣?我通過做一些文件比較可以看出,兩個分支之間仍然存在明顯差異,這意味着合併不起作用。

回答

0

之前你會看到樹幹的變化,你需要svn commit

svn merge操作會更改您的工作副本。你已經解決了衝突,很好,(我假設你也爲他們運行了svn resolved),現在剩下的就是將你的工作提交到版本庫svn commit

+0

我在嘗試合併之前進行了提交。當我運行上面的命令行時,它會很快返回到提示符,就像沒有發生任何事情一樣。檢查後備箱,我可以看到沒有合併發生。 – 4thSpace 2009-12-03 20:18:30

+0

「我在嘗試合併之前完成了提交」 - 這沒有意義...您合併,然後提交。你能否在你的問題中提供更多細節?到目前爲止,我對你到底做了些什麼感到茫然。 – retracile 2009-12-03 21:25:29

+0

我試圖將v1.2合併到trunk中,解決了衝突但是沒有提交。然後嘗試將v1.2重新合併到主幹中。不行。所以我承諾主幹更改,然後合併v1.2,並工作。我對這個問題做了編輯以反映我現在的位置。 – 4thSpace 2009-12-03 21:43:14

1

你確定r104是你創建1.2分支的地方嗎?你可以驗證:

svn log --stop-on-copy file:///path/to/branch 

那麼你需要使用該版本範圍。

編輯

好了,所以這是怎麼了正常去......假設你想在你的分支所有變化和分支在R104創建。

cd path/to/trunk/checkout 
svn merge -r 104:HEAD file:///path/to/branch 

這將您的分支所做的更改合併到主幹的本地副本。您現在需要解決所有衝突(如果有的話)。在這一點上,如果你這樣做:

svn stat 

你應該只能看到文件,並顯示目錄標記M A或X(如果你擁有的外部)。現在,爲了使合併要在資源庫中的樹幹,你需要做的:

svn commit -m "my commit comment" 

您選擇遇到的問題是,你的前幾個正常,但隨後的步驟didnt提交合並的更改,而是試圖合併再次。所以現在你可能在後備箱裏瘋狂了。你可能需要對最後一個好的副本進行回覆,然後再次合併並提交。

+0

是的 - 它顯示該分支中的r104。 – 4thSpace 2009-12-04 03:49:25

+0

我會在下一輪嘗試它,因爲在時間方面,我刪除了幹線內容,將v1.2複製到幹線並提交。大錘,但geez!下次更好運氣。 – 4thSpace 2009-12-04 05:31:52

1

你已經告訴Subversion將分支的變更合併到修訂版104和105中;你忽略了在r104中做出的改變。

嘗試

 
svn merge -c 104,105 file:///Developer/Main%20Repository/myproject/branches/v1.2 

,並確保你有一個主幹工作副本。