2015-11-02 74 views
1

我有一個關於TFS 2013中分支之間合併的問題,特別是關於合併放棄,我無法在其他線程中找到答案。TFS:合併放棄變更集在合併時顯示爲合併候選人


場景:我們有兩個分支,我們姑且稱之爲$North$South - 強調他們不能作爲源和目標來看待(即合併可以在兩個方向上進行)。從$North分支出$South

我檢入變更集編號。 1000 $North,以及變更果然出現作爲合併候選:

> tf merge /candidate $North $South /recursive 
Changeset User Date Comment 
1000  Bob ... Updating build script 

然後我做了合併丟棄,因爲這種變更是不相關的合併到另一個分支,實際上它是不是應用程序代碼,而是配置具體的分支:

> tf merge /discard /version:C1000~C1000 $North $South /recursive 
Resolved file1 as KeepYours 
... 

我在merge discard檢查導致變更NR。 1001現在變更1000已經從合併候選列表中消失:

> tf merge /candidate $North $South /recursive 
There are no changes to merge. 

,但現在我檢查反向合併候選人:

> tf merge /candidate $South $North /recursive 
Changeset User Date Comment 
1001*  Bob ... Merge discard on changeset 1000 

我甚至嘗試再次回滾合併丟棄,因爲我寧願有變化作爲合併候選從$North$South比在另一個方向,但結果卻只是另一個合併候選:

> tf merge /candidate $South $North /recursive 
Changeset User Date Comment 
1002*  Bob ... Rollback on merge discard on changeset 1000 
1001*  Bob ... Merge discard on changeset 1000 

有誰知道是否有可能完全丟棄變更集,也沒有丟棄本身作爲合併候選人出現在另一個方向?

(雖然我不知道如果我最初的變更是相關的內容,我可以補充一點,我的實際變更1000是$North這一變化包括了,這是也存在於$South的文件夾上刪除,並也是一個文件夾添加。)

+0

你使用的是什麼版本的tfs?嘗試在TFS 2015上,分支一個項目並處理雙向合併,但不能再現您的問題。無論$北部到南部,還是南部到北部,合併都沒有變化。 –

+0

對不起,我忘了提。這是TFS 2013. – user3774315

+0

我做了一個新測試,程序與上面描述的相同,但是使用了最簡單的根變更集(單個文件添加)。儘管合併放棄變更集在候選列表中沒有顯示星號(部分合並),我仍然可以在TFS 2013上重現行爲。 – user3774315

回答

0

奇怪的情況下,當我昨天在單個文件上嘗試時,我無法重現您的問題。當我今天嘗試通過添加新文件夾進行新測試時,我無法在第一次嘗試時重現您的問題,但是當我嘗試新合併時,我可能會重現您的問題。很明顯,我們不是唯一有此問題的人,請檢查TFS Merge: Cannot discard a changeset,您可以在http://connect.microsoft.com/VisualStudio上爲此隨機問題提交反饋。

順便說一下,有時,合併/ baseless/discard會強制文件被考慮用於合併,然後由丟棄開關丟棄。

0

根據MSDN上的「/丟棄」的描述:

/丟棄 不進行合併操作,但更新合併歷史 跟蹤發生的合併。這丟棄了用於特定合併的 的變更集。

即使合併未發生,分支的歷史記錄仍會更新。您可以檢查分支的歷史記錄,其中應該有一個變更集1001。