A 部分合並記錄爲只有變更集中的某些更改合併到目標。有兩種常見的情況下面,你可以用部分合並結束:
方案1:撤消一些懸而未決的變化,當你正在檢查的合併後的文件
在這種情況下,儘管我們已經合併變更Dev到Main,它仍然是合併候選人。這是由於合併引擎檢測到該變更集中仍然存在一些變化,而這些變更未從Dev傳播到Main。
方案2:演出在功能層面的合併無法從分支的頂部
例如:假設您擁有兩個分支主要和開發,他們每個人都有兩個文件夾( Feature1和Feature2),每個功能文件夾包含一個文件。我們從功能文件夾(Dev\Feature1\feature1.txt
和Dev\Feature2\feature2.txt
)編輯這兩個文件並檢入更改。
如果在特徵1級進行合併操作。(Changset142→ Changeset143)您將在一個只在Feature1
文件夾中所做的編輯將被合併Pending Changes窗口通知。完成合並。
如果你看一看的優點1文件夾,你會看到的合併歷史,從變更142所有的改變都被合併到變更143
但是,如果你看一看主要的合併歷史您將看到變更集142中只有部分已合併到變更集143中。這是正常的,因爲變更集142有一些更改 - 即編輯Feature2文件夾中的文件 - 未交付。
在部分合並的情況下,找出哪些更改已合併以及哪些更改從變更集中省略。實現此目的的唯一方法是對diff部分合並的變更集的內容以及作爲合併結果生成的變更集的內容。更詳細的信息可以參考本博客:Partial Merges in TFS – A Guide
更新
你可以做一個discard merge。 這必須從命令行完成。打開Developer command prompt, ,然後導航到任一分支下的文件夾(即將 導航到受影響的 workspaces之一)。 然後鍵入:
tf merge /r /discard "$/Project/B1" "$/Project/B2" /v:C12345~C12345
這將需要識別的變更(在這種情況下,它被變更集 #12345
),並更新它作爲合併到目標分支(分支B2)。目標文件將被檢出,但不會被更改 - 您只需檢查它們即可完成操作。之後, 變更集將不再顯示爲合併候選人。您可以同時指定 一組變更集合,但它們應該是 連續的。
注意,這樣做後,變更會偶爾還是會出現 作爲合併候選 - 這是相當罕見的與最新 版本的TFS的,它幾乎是不可能解決(除非你是 運行你自己的地方安裝TFS並想讓你的手在數據庫中非常髒 )。如果您最終遇到了其中一個被拒絕的變更集,請忽略它。
來源: Finding merge candidates in TFS
我跑的變更集的比較,看看有什麼不同。列出了4個差異。來自中繼分支中目標40622的活動分支的變更集40621。現在我發現了這些差異,我該如何解決這個問題,以便變更集40621停止顯示爲合併候選人? –
您可以執行[放棄合併](https://msdn.microsoft.com/en-us/library/bd6dxhfy%28v=vs.100%29.aspx)。它不執行合併操作,但會更新合併歷史記錄以跟蹤合併發生的情況。這會丟棄用於特定合併的變更集。** –
不幸的是,未從我的待處理列表中刪除變更集。更改集31263位於待從Trunk合併到Active的待更改列表中。我運行了'tf merge/discard/version:C31263 $/Trunk/Project1 $/Active/Project1/recursive'。我檢查了Active上的合併,然後再次調用合併對話框,31263仍在列表中。 –