web-dev-qa-db-ja.com

TFPTが「ワークスペースを判別できない」ため、キャッシュの更新が機能しない場合の回避策はありますか?

インターネット上の通常のアドバイスに従ってキャッシュされたワークスペースの設定を更新しようとした後でも、TFPT.exeをまったく機能させられません。私が試してみたもののログの代表については、以下を参照してください。 「tf get」がワークスペースを決定できる理由を誰かが説明できますが、「tfpt annotate」は失敗しますか?

C:\tfsproj> set tfptcmd="C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools\TFPT.exe"
C:\tfsproj> set tfcmd="C:\Program Files (x86)\Microsoft Visual Studio   10.0\Common7\IDE\TF.exe"
C:\tfsproj> %tfcmd% workspaces /s:http://tfs:8080/tfs/Apps
Collection: tfs\Apps
Workspace Owner          Computer Comment
--------- -------------- -------- ---------------------------------------------
DAVID     David_Zarlengo DAVID

C:\tfsproj> %tfcmd% get /preview
C:\tfsproj\src\:
Replacing Readme.txt

C:\tfsproj> %tfptcmd% annotate src\Readme.txt
Unable to determine the workspace

Visual Studio 2010でワークスペースを編集すると、[作業フォルダー]グリッドに3つの行が含まれ、そのうちの1つは「アクティブ、$/Foo、C:\ tfsproj」であるため、フォルダーが正しくマップされていると想定します。

クロスポスト Team Foundation Server – Power Tools&Add-ons

22
davidzarlengo

これを見直してみると、「C:\ tfsproj」が「C:\ some\nested\path」へのディレクトリシンボリックリンクであることがわかります。ネストされたパスからTFPTコマンドを実行すると、期待どおりに機能します。

興味深いことに、TFSワークスペースはネストされたパスにマップされていたため、TFコマンド(たとえば、tf get/preview)がエイリアスパスから正しく機能できたことは驚くべきことです。

ワークスペースを決定するときに、TFPTがNTFSディレクトリのシンボリックリンクを正しくたどらないのではないかと思います。

5
davidzarlengo

MSDNフォーラムでの同様の議論 からのこの提案は私を助けました:

マップされたフォルダからコマンドを実行していることを確認する必要がありますtf workfoldを実行できます現在のフォルダーがマップされているかどうかを確認します(つまり、あなたの場合はC:\Tempからコマンドを実行します)

32
Nikita G.

これと同じエラーが発生し、問題はコマンドラインからtfptを実行したときに、2010バージョンではなく、2008バージョンのパワーツールに解決されていたことでした。

引数なしでtfptを実行すると、ダンプされたヘルプで、どのバージョンであるかがわかります。

15
Scott Langham

Vs2017の場合:vs2017(2017ではない)を起動し、vs2015でTFSサーバーに接続していることを確認してください。tfptは正常に機能しました。

ただし、tf powertoolsコマンドが新しいtfsツールに統合されているようですので、tfptは実際には2017年のものではありません。詳細と役立つリンクについては、Daniel Mannの回答を参照してください: tfpt.exe on Visualスタジオ2017

14
JohnnyFun

私の場合、これが私がこの問題にたどり着いた方法(エラーメッセージ"ワークスペースを特定できません")と、それをどのように解決したかです。

到着:

コードがいくつかありました。開発は私が働いていたブランチ(それをBranch1と呼ぶことにします)からBranch2に移動しました。 Branch2の下で続行する必要がありました。変更を保留し、開発フォルダーをBranch2に再マップし、開きましたVS2012の開発者コマンドプロンプトで、次のコマンドを実行しました

tfpt unshelve/migrate/source: "$/path/Branch1"/target: "$/path/Branch2" "Shelveset Name"

ここに「Unable ...」というメッセージがあります

解決:

私の場合、問題は、コマンドプロンプトを開いたときに、その作業ディレクトリがc:\program files\...\...Visual Studio 11...。私は作業ディレクトリをブランチ自体のディレクトリに変更したときに動作しました(shelvesetを移行):c:\MyBranchFolder

1
T.S.

作業ディレクトリ内にいる限り、tfpt annotateは機能します。 「ワークスペースを判別できません」というメッセージが表示される場合は、キャッシュの問題です。

あなたが言ったように、tf workspaces/s:serverURLを実行してもまだ解決しない場合は、新しいワークスペースを作成してテストしてみます。それが機能する場合、ワークスペースに明らかに何か問題があり、私はそれを削除して新しいワークスペースを使用します。両方が失敗した場合、もちろん大きな問題がありますが、それが私がそれに取り組む方法です。

1
Mike Veigel