2017-12-29 45 views
0

TFVCワークスペースをサーバーに同期させるコマンド(または一連のコマンド)があり、ディスク上の内容がサーバーにチェックインされている内容と正確に一致することを確認します。Team Foundationクライアントコマンドを使用してワークスペースをリセットする

tf vc scorchクライアントワークスペースをサーバーのバージョンのワークスペースと同期させるという点ではほとんど何が必要ですか?クライアントで新しいアイテムが作成され、ソースコントロールに追加されていてもチェックインされません。スコーチを実行した後。注:私はVS2017(scorchはVS2013 SP1からサポートされています)で作業しているので、パワーツールバージョンではなく、TFクライアントバージョンのスコーチを使用しています。

関連するパワーツールにはtreecleanコマンドが含まれています。ただし、ソース管理下にない項目にのみ影響します。バージョン管理に追加されたものではなく、チェックインされたものではありません。https://adamprescott.net/2011/09/12/clean-tfs-workspaces-with-scorch-treeclean/。私はこれを達成すると考えることができ

唯一の方法は、新しいフォルダを再作成するために再帰的なGETを実行する前に、(tf vc workspace /delete /collection:"https://$MyInstance.visualstudio.com/DefaultCollection" $MyWorkspace)&再作成(tf workspace /new $MyWorkspace /collection:"https://$MyInstance.visualstudio.com/DefaultCollection")ワークスペースを削除することです。しかし、私が想定したい何かのための長いウェイラウンドはシンプルになるように感じていること...

我々はTFVCではなくGitを使用している私たちはDynamics AXで作業しているので、ネイティブGitをサポートしていません。

このオブジェクトを削除したい理由は、このスクリプトがビルドサーバーで実行され、ソース管理にチェックインされたものを確実にビルドするためです。理論的には誰もビルドサーバー上に新しいオブジェクトを作成するべきではありませんが、私はその前提に頼りたくない/このスクリプトを可能な限り強固にしたいと思います。

答えて

0

私はundoコマンド:TF.exe vc undo * /recursive /nopromptが欠けていました。

getを実行してからscorchを実行する前にこのコマンドを実行すると、自分のワークスペースが最新のサーバーバージョンと正確に一致することが保証されます。

ここには、現在のワークスペースをサーバーと同期させるための完全なコードがあります。 NB:このコマンドは、のディレクトリがpath環境変数(またはtf"...\path\to\tf.exe"に置き換えること)に含まれていることと、現在の/作業ディレクトリがソース管理にマップされていることと、tf資格情報がキャッシュされていることを前提としています/loginユーザー名とパスワードの引数)。私はgetコマンドに/all、 '/ overwrite'、または '/ force'を含めていません。scorchはこれをカバーします。 getの主な目的は、私たちのワークスペースが最新の定義を「指す」ことを確実にすることです。

tf vc undo * /recursive /noprompt 
tf vc get * /recursive /noprompt 
tf vc scorch * /recursive /noprompt /diff 

NB:上記vcは不要である/だけで、システムがtfvcのコマンドのバージョンの代わりに、gitバージョンを使用するように知っているだろう曖昧さの可能性があったことを保証します。

関連する問題