2009-12-29 34 views
16

任何人都知道這是否可能(生成統一的差異),如果是這樣,如何?TFS中的統一差異

謝謝。

+0

可能重複的[用TFS創建補丁](http://stackoverflow.com/questions/52234/creating-a-patch-with-tfs) – sloth

回答

13

這是tf diff /shelveset:<set> /format:unified。但是請注意,與大多數現代版本控制系統不同,TFS實際上無法使用補丁文件afaik。也就是說,您不能將diff的結果應用於一組文件以獲取結果更改。 (大多數人的做法是壓縮文件,並將其替換爲「補丁」。)

+0

約翰,你會知道如何輸出結果到diff工具而不是命令窗口?我不小心發現做/選擇:?會在沒有/ format:unified選項的情況下進入我的默認合併工具(TortoiseMerge.exe),但是我無法通過統一選項將它移到那裏。 另外,我只能看到自己的擱置 - 希望看到團隊的所有擱置 - 是否可能,還是必須從服務器運行tf.exe? – sydneyos

+0

完美 - 謝謝。對於像我自己可能不知道的其他人,tf.exe在這裏(除非你安裝在其他地方) - C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE。這裏有一個參考:http://tutorial.visualstudioteamsystem.com/details.aspx?item=38。 – sydneyos

+0

我想出瞭如何讓它輸出到.diff文件。輸入命令:「tf diff/format:unified [/ shelveset:]> filename.diff」然後,如果您安裝了任何將處理.diff格式的內容(如TortoiseSVN),請將其打開。等瞧! – sydneyos

0

這是一個正在進行的功能差異(赦免雙關語)與SubVersion和其他人,那就是recognised by Microsoft。我相信,一個解決方案將很快出現,然而直到後來我想出了一個解決方案:

  1. 構建一個Windows窗體應用程序將需要4​​個領域作爲命令行參數(filepath1,LABEL1,FILEPATH2,LABEL2)並返回兩個文件的字符串統一差異(可能輸出到一個富文本框或其他東西)。我有一個,但是我相信CodePlex上有點粗糙。有幾個管理的差異庫。

  2. 將Visual Studio的源代碼管理比較功能設置爲指向您的差異應用程序。確保它打開並正確比較。

  3. 構建一個windows窗體補丁程序,它將補丁應用於一個文件夾。應用程序還必須檢查每個文件,因爲它被修補(好玩!)。

  4. 設置兩個工作空間,通常是一個,還有一個MyWkSpace_PATCH。這用於打補丁。

我還是要完成第3點,但這會給我一些與SubVersion類似的功能。將讓你知道點3去!

12

這是我平時做:

顯然這假定源文件已經簽出。如果它們不是,尤其是在跨分支應用補丁時,請編寫一個簡單的shell腳本來通過diff文件,獲取文件路徑並對其進行編輯。

+0

對於我的設置(windows 7,tfs 2013),從tfs2013創建修補程序是可以的,但修補程序實用程序無法將這些修補程序應用於類似的文件。響應是「無法在輸入行找到要修補的文件6 也許您使用了錯誤的-p或--strip選項?」 – ozkolonur