2013-08-01 21 views
1

以下是我們的情況: 在TFS 2010中,我們有主要的開發分支和發佈分支。 在某些時候,有人決定將一些代碼放在一個命名不佳的目錄中,因此它在TFS中被重命名(僅在主分支上,因爲它不是一個錯誤文件)。 我現在已經在dev分支上的這個移動代碼中修復了一個bug,並且想要將修復合併到發佈分支中。如何在文件移動時在TFS中合併?

然而,當我這樣做,而不是對文件進行合併,它創建該文件的新位置副本並標記變化「合併,分支」。

我做得不對或這是TFS的「功能」?

更新:我剛剛重新審視這個職位和重試。步驟來重現錯誤是:

  1. 我在主/桌面/用戶控件和 發佈/ V5 /桌面/用戶控件文件(control.cs)。
  2. 使用源代碼控制管理我「移動」用戶控件來UserControls2和檢查(我也與 相同的結果試圖「重命名」 BTW)
  3. 我編輯的主要control.cs和檢查。
  4. 我主要合併到發佈/ V5(請注意,我在合併的整個分支,而不僅僅是用戶控件)
  5. 我現在看到修改後的control.cs在發佈/ V5 /桌面/ UserControls2和舊的發佈/ V5 /桌面/ UserControls
+0

你可以檢查更新的答案。 – Isaiah4110

回答

0

我早先回答它,假設你有DEV br錨和我有更多的投入後,我做了一些更多的研究與TFS與你在上面解釋。

這是我做的,我有一個源科稱之爲主,我從主叫釋放支。在Main中,我有兩個文件夾(f1和F2),我將文件夾F2重命名爲F3並檢入更改。然後在F2(現在的F3)中編輯文件File1,並對內容進行一些更改,並檢入更改。

現在我合併的主要釋放並每變化適當地合併。在Release中,文件夾F2被重命名爲F3,並且文件1也被合併到了正確的文件夾中。

更改應顯示爲合併,重命名爲文件夾並編輯文件。

一切都像一個魅力。我也在使用TFS2010。你能否讓我知道你做了什麼不同於我剛剛解釋的事情?我錯過了什麼嗎?

UPDATE:

我測試了一下你上面提到的確切的情況,它甚至合併後招的control.cs正常文件/源分支重新命名。我相信在你的情況下 - 在Release分支中有人重新創建(刪除並再次添加)Usercontrols文件夾和/或Usercontrol.cs文件,因此TFS無法識別它與源分支相同的文件/文件夾,因此它不是正確合併。

你可以檢查發佈分支中Usercontrol文件的歷史記錄以確認嗎?

只是增加一些截圖從我的測試:

​​

This file lives within the BugTest2/BugTest3 folder

+0

嗨,以賽亞,謝謝你的迴應。雖然它有點混亂。我想你正在描述一個系統,其中有一個獨立的Dev分支,而我們只是在Main上做我們的開發。不過,如果我正確地閱讀,步驟1-5涉及讓Dev和Main與新文件夾中的新錯誤修復同步。好吧,我不必擔心這一點。但是,當完成步驟6時,合併將不會將修復程序應用於Release中的文件,而是在新位置創建一個副本。 –

+0

如果你的文件被正確地分支,tfs應該像Isaiah描述的那樣解決變化的蹤跡。另一個分支的存在與此無關。我可能的情況下,這是行不通的是,文件/文件夾一旦在發佈和一次在主中分別創建2次 - 這將打破正確的分支,因爲tfs認爲它們完全不同的項目。 – drk

+0

我做的唯一不同於Isiah的修改答案是文件夾重命名和文件修改分開合併而不是一次全部合併。如果某個目錄是在某個時候單獨創建的,而不是像drk建議的那樣正確合併,我創建了一個新的測試目錄並重新創建了該問題。我得出的結論是,這是tfb tbh的一個缺陷,而不是我的錯誤。謝謝你們的幫助。 –