2011-09-17 51 views
3

我們有一種情況,在我們系統的主幹中已經完成了工作,但是後來爲我們的下一個版本而拉動了工作。我們創建了一個分支,其中的更改仍然在主幹中,然後僅回滾主幹中的更改。TFS丟棄不起作用回滾更改集

雖然我們留下了什麼,但只要我們想用最近的工作來更新分支,它就會嘗試合併我們不想要的回滾變更集。

我試過從TFS命令提示符使用/ discard命令,但不斷收到「有沒有更改合併」。這裏是我下面的語法:

D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch" 

我甚至試過周圍的源和目的交換無濟於事:)

的變更出現在候選的變更從主幹分支的潛在合併的列表。自初始分支以來,工作分支已經有一些檢入,但沒有分支到分支。

有沒有人有丟棄命令的經驗,爲什麼它可能不會在這裏工作?

感謝您的建議

+0

我加入了/毫無根據的標誌上面的命令,這給了我,我一直在尋找的結果丟棄方面:換句話說,它可以用一個毫無根據的合併完成來自變更集的正確文件。不知道這是否是最終解決方案。也許有人理解這個標誌更好一點可以解釋這是什麼意思/暗示? – swingdoctor

回答

1

通過tf rollbackMSDN讀選項/keepmergehistory是,這正是這些方案。 (請參閱幫助doco結尾處的相關示例)。

你的情況是不同的,這裏是我遵循的步驟(省略命令提示符):

tf merge /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch" 

tf checkin /recursive "D:\Projects\Big Project\Branch" 

tf rollback /version:XXXX /recursive /keepmergehistory "D:\Projects\Big Project\Branch" 

評論有關步驟:

  1. 沒有/discard選項

  2. 即使你對它不感興趣,也要檢查這個變化;請注意下一步中XXXX的變更集編號...

  3. 現在回滾該特定變更,並使用/keepmergehistory,以便TFS永遠不會再要求您合併此更改。

另外,你應該能夠回滾回滾在樹幹,然後使用該標誌重新申請 - 但我不知道該/keepmergehistory兩種方式都可以..這裏有雲:(不知道我把這裏的參數正確...)

tf rollback /version:C28350 /toversion:C28349 /recursive "D:\Projects\Big Project\Trunk" 

tf rollback /version:XXXX /toversion:XXXX-1 /recursive /keepmergehistory "D:\Projects\Big Project\Trunk" 

希望這有助於:-)

1

這可以通過告訴TFS無視歷史,而在執行合併來實現。

D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive /baseless "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"