2010-01-19 102 views
13

我正在嘗試將我的開發分支合併到我的回購軟件的主幹中。步驟我把:Eclipse合併到分支中

  1. 切換到主幹
  2. 檢查,這是最新的,解決任何衝突
  3. 轉到Team->合併
  4. 選擇網址:開發分支
  5. 開始修訂:當分支產生
  6. 最終修訂版修訂:HEAD
  7. OK

這應該做的魔力 - 它開闢了syncronize鑑於這是很好的,顯示我所有的衝突,但問題也有發生:

在比較編輯器我看到兩個文件: 本地文件|遠程文件(306)

這真的很奇怪,遠程文件的修訂號實際上是工作副本(trunk)中的文件之一,內容也是如此。本地文件具有分支中文件的內容。

現在箭頭正確顯示我從左到右合併(分支到主幹)。這也發生在我點擊確定時。

但我只能移動從右到左的變化!這不是我想要的 - 我不想用樹幹的舊內容覆蓋分支中的更改。我想將內容從左側(分支)移動到右側(中繼線)。但我甚至無法在正確的文件中寫入。

我不知道它爲什麼寫遠程文件呢?它清楚地顯示了遠程文件窗口中的工作副本文件,分支中的文件(用於合併)顯示在本地文件中。

Subversive中的一些錯誤?

THX, 馬丁

回答

6

梅傑斯是從來沒有容易顛覆(如在這個古老SO question提及),所以可以在外部做合併(或Subclipse的),會更容易在這裏。

如果您的客戶端和存儲庫都至少位於SVN1.5中,Subversive新的合併功能會更好,但仍然有危險,如this thread所示。

由於Subversive已被修改爲SVN 1.5,整個合併行爲已經改變。我真正喜歡的一件事是能夠選擇我想要的更改,將其應用於我的工作副本,然後提交主幹。
顛覆現在不再這樣做,而是強制所有的變化到你的工作副本,然後你選擇放在後備箱裏。

這不僅是不受歡迎的行爲,但它也是危險的(如果你忽略無論如何還原的可能性)。我喜歡犯我知道工作的事情。我們有一個發佈分支,可以獲取可能需要或不需要遷移到主幹的更改。

+1

這是true..it的那種可怕的是,合併之前發生的(沒有用戶交互)到您的工作副本。然後,您必須與幹線進行比較並恢復不需要的更改。 我喜歡它倒過來,(現在正試圖版本),其中合併到工作拷貝發生,用戶可以選擇合併這件事之前。 – martin 2010-01-21 10:48:31

2

起初,這似乎很神祕,現在我將提供一個體面的刺戳更新每個人的答案。這點使用SVN顛覆客戶端的Eclipse合併:

你做正確的合併,在樹幹開始,然後你的本地分支下指向您的文件。您的文件在「團隊同步」選項卡下的「文本比較」窗口中打開。如果您在左側的導航欄中看不到衝突,那麼您的合併剛剛發生。是的,這是令人困惑和不直觀的。

什麼文本比較窗口提供您是要撤消更改的能力(或者可能已經侵入了您的合併文件偷着任何其他人)在提交之前。請記住,你是拉從分支機構的文件中,這樣的想法是,該分行的文件是在樹幹但在一種虛擬無人過問,直到最終提交的,在這裏改變或撤銷不必要的更改引用了分公司(顯然)的文件。這就是爲什麼你只有一個單向管道(中繼到分支)來覆蓋通過工作副本合併到Trunk中的更改。你的合併已經發生,但還不是很正式。

如果一切理所應當,右鍵單擊導航窗口中的文件(左窗格中我的Eclipse赫利俄斯安裝),然後從下拉接受。然後再回到主代碼查看選項卡(在我的安裝中它是PHP,但它可能是您正在使用的任何內容),然後將該文件提交給Trunk。

如果你想測試此,執行文件「原樣」的觀點在樹幹提交之前,你應該看到你的變化反映了那裏,如果你已經正確的合併。這似乎是它在OSX Snow Leopard Macbook Pro上爲我工作的方式。不確定Windows或Linux人員是否一樣。我認爲它本質上是相同/相似的過程。

0

很容易檢查

退房主幹輸出作爲...給不同的項目名稱。

現在你有兩個本地的工作拷貝,你想承諾軀幹和你工作的分支上且其變動已comitted到倉庫。 現在右鍵單擊主幹項目(我的意思是項目,而不是單個文件) - 合併 - 選擇分支項目(再次,項目) 接受所有更改本地副本 提交你需要的主幹用於 一切正常,再次刪除幹線和不斷分支工作

尤其是分支機構,這似乎超級容易和工作就像一個魅力對我來說

相關問題