2009-08-28 7 views
0

私はPowerShellでTFS Power Toysを使用してファイルの履歴を取得しています。同様に:tf diff:コマンドラインでdiffがファイルの有効なバージョンを認識しないのはなぜですか?

$fileName = "$/MyDir/MyFile.cs"  
$results = @(Get-TfsItemHistory $fileName) 

多くのChangesetIdを持つ素晴らしい結果セットが得られます。しかし、私は私が得るChangesetIdsのいくつかのためのTFの差分(tf diff /version:C36826~C36680 "$/MyDir/MyFile.cs" /format:unified)を実行すると:私は、ファイルのこれら2つのバージョンを比較するには、Visual Studioから比較ツールを使用することができますしかし

Item $/MyDir/MyFile.cs;C37400 was not found in source control. 

。私は何か間違っているのですか?ファイルの時代とは関係がないようですが、コマンドラインの差分にチェンジセットが表示されますが、その日の前に起こったチェンジセットは表示されません。これらのチェンジセットをGUIツールで表示すると、多くの行が変更されていますが、チェンジセットは空ではありません。

この問題は何ですか?バグレポートを提出する必要がありますか?これは私のバグのようです。

多分これはそれと関係があります:最後の差分が私に "\の末尾に改行なし"と表示されます。

答えて

1

私はそのファイルの名前が変更されたと思います。幸いにも追跡するために、あなたはすでにPowerShellを使用しているので、これは非常に簡単です:

tf diff "$/MyOtherDir/MyFile.old.cs;1234" "$/MyDir/MyFile.cs;5678" 

[EDIT]最初:

tfhistory "$/MyDir/MyFile.cs" -all | select changesetid, @{name="Path"; expression={$_.changes[0].item.serveritem}} | ft -auto 

あなたはその後、もう少し詳細な構文を使用して差分を実行する必要がありますあなたが見ることができるように、私は個人的には、Get-TfsItemHistoryも短いタイピングのための「tfhist」にエイリアス持って、

C:\workspaces\temp> tfhist rentest2 -all | select changesetid, @{name="Path"; expression={$_.changes[0].item.serveritem}} | ft -auto 


ChangesetId Path      
----------- ----      
     10725 $/Test-ConchangoV2/rentest2 
     10142 $/Test-ConchangoV2/rentest 

:コマンドは次のように印刷する必要があります。 「tfhistory」はPower ToolsのPSコンソールが使用するものなので、元の指示に従ってください。

+0

これはカフのスクリプトからですか?私はそれを実行するときにあらゆる種類の問題があります。 – jcollum

+0

あなたは正しかった、私のスクリプトを壊していた名前が変更されました、ありがとう! – jcollum

+0

スクリプトはカフを外していましたが、機能します。出力を表示するための答えを編集しました(これは私が期待しているものです)。 –

関連する問題