我如何找出我目前變更在我的本地工作區?獲取當前變更ID在工作區TFS
當然,我可以選擇一個文件並查看它的歷史。但是,如果該文件最近未更新,則其變更集可能比同一解決方案中最近更新的文件早。
一個可能的錯誤,我們可以利用的是我們看待歷史上的解決方案文件,但解決方案文件很少更改,除非您要添加一個新的項目/製作解決方案級的變化。
最終找出我需要記住的是改變了最新的文件,並查看他們的歷史變更。
有沒有更好的方法來做到這一點?
我如何找出我目前變更在我的本地工作區?獲取當前變更ID在工作區TFS
當然,我可以選擇一個文件並查看它的歷史。但是,如果該文件最近未更新,則其變更集可能比同一解決方案中最近更新的文件早。
一個可能的錯誤,我們可以利用的是我們看待歷史上的解決方案文件,但解決方案文件很少更改,除非您要添加一個新的項目/製作解決方案級的變化。
最終找出我需要記住的是改變了最新的文件,並查看他們的歷史變更。
有沒有更好的方法來做到這一點?
你的答案是在MSDN博客由巴克霍奇斯:How to determine the latest changeset in your workspace
從您的工作區的根(頂部),在cmd中執行:
tf history . /r /noprompt /stopafter:1 /version:W
如果你想使用PowerShell(see also;相當於回答@kroonwijk):
使管理單元(TFS一次,如果沒有的話)
add-pssnapin Microsoft.TeamFoundation.PowerShell
使用TFS cmdlet來獲取當前的變更ID
Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W
常見的答案,使用tf.exe history . /r
直接的工作,但可能是可怕的慢。在我們的情況下需要10-15秒。 我現在使用兩階段檢查,首先檢查一些任意文件的修訂(我正在使用根文件夾中的文件)。
使用PowerShell:
$tfexepath = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe"
$localpath = "C:\some\tfs\directory"
$result = & $tfexepath history $localpath /noprompt /stopafter:1 /version:W
"$result" -match "\d+" | out-null
$id = $matches[0]
,然後再使用/ R標誌,但限制搜索從修訂開始上述發現:
$result2 = & $tfexepath history $localpath /r /noprompt /stopafter:1 /version:$id~W
"$result2" -match "\d+" | out-null
$id2 = $matches[0]
#result:
Write-Host $id2
四我們的代碼庫,這將總時間從10-15減少到1.4-1.5秒。
據我瞭解有沒有缺點或限制,但我想這可能是一個小倉庫慢。 - 我很高興知道。
哪個版本的TFS的? –
爲什麼你想知道你目前的變更集? –
當您的工作空間不代表變更集時會發生什麼?考慮你已經映射了$/A,並且你已經檢索了變更集A,並且映射了$/B,並且你已經獲取了變更集B.你的工作空間在哪個變更集? –