2011-09-20 239 views
3

我想知道是否有一個有用的命令來撤消TFS中未改變的文件。如何恢復/撤消TFS中未更改的文件?

我試過用「tfpt uu」命令。但它只能撤銷/還原在服務器和本地工作區中保持不變的文件。例如。所有在服務器上更改但未在工作區中觸摸的文件都保留爲檢出狀態。我想要的是恢復/撤消在我的工作區中保持不變的所有文件。 tfpt uu-command對於該場景似乎沒有用處。

如何在TFS中恢復/撤消未更改的文件,其中未更改文件的定義是未在工作區中更改的文件。

示例:

我有兩個工作區ws1和ws2。 Ws2用於模擬其他用戶在TFS中進行源代碼更改,而ws1代表我自己的工作區。我們有3個文件A,B和C.

  1. 簽出ws1上的所有文件。 (檢出A,B和C)
  2. 在ws2中更改文件A.
  3. 在ws2中籤入文件A.
  4. 在ws1中更改文件B.
  5. 在ws1上執行tfpt uu。

回覆/百廢待興的唯一文件爲C.文件A和B仍然簽出的WS1

我預計A和C,其中恢復/百廢待興,因爲他們沒有被改變WS1。

+0

這不是特別清楚你的意思在這裏。 「我要的是解開所有的,在我的工作空間不變的文件」 - 如果他們*不變*在您的工作那還有什麼「撤銷」是什麼意思? – AakashM

+3

文件可以檢出並保持不變。撤銷意味着恢復結帳。 –

回答

4

tfpt uu上指定/noget選項,我想你會得到你以後的行爲。

+0

TFTP UU/noget有同樣的問題。使用此選項時,文件A(請參見上面的示例)不會從ws1中的結帳退回。 –

1

這聽起來像你需要合併/解決文件A的變化之前tfpt UU會認識到文件沒有改變。由於文件A已簽出,因此TFS希望您在更新本地副本之前先解析該文件。所以tfpt不會識別該文件沒有更改,因爲它與(最新)服務器版本不同。

0

的問題是老了,但是這可能幫助:假設所有的文件在您的工作區都指向同一個變更,你不妨比較agains您的工作版本:

首先,讓你的工作版本:

tf history . /r /noprompt /stopafter:1 /version:W 

然後撤消所有未更改的文件(假設前面的命令返回123456爲你的工作版本):

tfpt uu /changeset:123456 /recursive 
0

我遇到了一個SI在我分支我的代碼的情況下,然後重命名分支,當我將它們合併到一起時,由於重命名(物理路徑已更改),每個文件都有「更改」。

我試過2種選擇:

  1. TFPT UU /任何選項 - 你 - 想 - 在我的具體情況,這並沒有撤消更改,因爲我想他們在技術上變化?
  2. 我已經跨越運行另一種解決方案是撤銷所有未決的更改,然後單擊「全否」時,警告彈出關於撤銷更改的文件。這幾乎的工作,但它也解開了自己的新文件添加。

由於這些都不適合我,我厭倦了尋找,但也許以爲其中一個選項可能適用於其他人。

0

相關:Date Created/Modified attribute on files的出現使tfpt uu不行的,因爲我手動複製/粘貼從一個分支的本地目錄中的文件到另一個和它拒絕撤消任何東西,即使只有幾個文件已被修改。

在我的情況下,修改時間戳是相同的,但創作時間戳是關閉了10分鐘,因爲那是多久它顯然把我送到了兩個分支下載到我的地方發展機。