2011-10-13 13 views
59

現在ローカルワークスペースにどのようなチェンジセットがあるか把握するにはどうすればよいですか?TFSのワークスペースに現在のチェンジセットIDを取得する

確かに、1つのファイルを選択してその履歴を表示できます。ただし、そのファイルが最近更新されていない場合、その変更セットはおそらく同じソリューション内の最近更新されたファイルよりも古いことがあります。

私たちが行う可能性がある間違いの1つは、ソリューションファイルの履歴を表示することですが、新しいプロジェクトを追加する/ソリューションレベルの変更を行わない限り、ソリューションファイルはほとんど変更されません。

最後に、最新のファイルが変更されたことを覚えて、その履歴を確認する必要があります。

これを行うより良い方法はありますか?

+0

TFSのどのバージョンですか? –

+0

なぜ現在のチェンジセットを知りたいのですか? –

+0

ワークスペースがチェンジセットを表していない場合はどうなりますか? '$/A'がマップされていて、チェンジセットAを取得し、' $/B'をマップして、チェンジセットBを取得したとします。あなたのワークスペースはどのようなチェンジセットですか? –

答えて

0

あなたはPowerShellの(see alsoを使用したい場合は、 @kroonwijkの答えに相当):

  1. は既に一度(スナップインTFSを有効にする、そうでない場合は)

    add-pssnapin Microsoft.TeamFoundation.PowerShell

  2. 使用TFSコマンドレットを現在のチェンジセットID

    Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W

0

に共通する答えを得るために、tf.exe history . /rを使用することが直接作業を行いますが、恐ろしく遅くなることがあります。私たちの場合、それは10-15秒かかります。 私は2段階チェックを使用して、最初に任意のファイルのリビジョンをチェックします(私はルートフォルダ内のファイルを使用しています)。 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秒に減少させる。

私の知る限り、欠点や制限はありませんが、小さなリポジトリでは遅くなる可能性があります。 - 私は知ってうれしいだろう。

関連する問題