私はこれを仮定します:
tf.exe get $/project /recursive
...この奇妙なワークスペース マッピング、既知の TFS サーバーなどが必要です。
この最も簡単なことを行う方法はありますか:この一連の資格情報を使用してこのTFS サーバーに接続し、このプロジェクトの最新のソース コードを取得して、ここに配置しますか? すべてコマンドラインから。
私はこれを仮定します:
tf.exe get $/project /recursive
...この奇妙なワークスペース マッピング、既知の TFS サーバーなどが必要です。
この最も簡単なことを行う方法はありますか:この一連の資格情報を使用してこのTFS サーバーに接続し、このプロジェクトの最新のソース コードを取得して、ここに配置しますか? すべてコマンドラインから。
まず、ソース管理されなくなった管理対象ファイルのコピー(SVNエクスポートなど)が必要ですか、それともファイルとTFSを引き続き使用したいですか?
最新のファイルのコピーが必要で、TFSに「バインド」しない場合は、自分で少し作業を行う必要があります。クレデンシャルを脇に置きます([/login:username,[password]]
多くのコマンドラインメソッドのパラメーター)。
TF
次のコマンドを使用して、ファイルのリストを取得します。tf dir "$/YourSolution" /Recursive > files.txt
files.txt
巧妙なバッチファイルで処理する(またはスクリプト言語を使用する):$/
、これがディレクトリです。宛先にディレクトリを作成します(最初の3文字と最後の文字であるコロンを削除します)。%file%
とディレクトリ%dir%
にファイルがあると仮定して、次のコマンドを発行します(そのディレクトリ内のファイルごとに) ):: tf view "$/%DIR%/%FILE%" "/output:Your-Target-Path/%DIR%/%FILE%"
または、現在のディレクトリをターゲットとして使用することに満足している場合:
tf view "$/%DIR%/%FILE%" "/output:%DIR%/%FILE%"
出力部分にが必要であることに注意してください。そうしないと、%DIR%/%FILE%
すべてのファイルが同じディレクトリにダンプされます。
注:これは非常に高い帯域幅で動作が遅い可能性があります!
tf workspace /new /collection:<URL_TO_SERVER> /permission:Private
これはプロンプトを表示します。プロンプトなしのオプションがありますが、ワークスペースの名前を決定することは演習として残されています)LOCALDIR
tf workfold /map "$/SERVER_DIR" "LOCALDIR"
LOCALDIR
tf get . /Recursive
この時点で、すべてのファイルが用意されているはずです。必要に応じて、TFSとのバインディングも用意して、変更をコミットできるようにします。または、コンテンツを別の場所にコピーして、マッピング/ワークスペースを分割することもできます。の正しいコマンドラインバリアントを使用tf workfold /unmap
するtf workspace /delete
と、ワークフォルダーのマップが解除され、ワークスペースが削除されます。
TFS からフォルダをきれいにエクスポートしますか? 最後に、私が思う素晴らしい解決策を見つけました。
今はこれを完全に調査するつもりはありませんが、時間があるときに、非常に面倒なビルド サーバー ワークスペース同期スクリプトをこれに置き換えるつもりです。
解決:
Microsoft の Git-TF を使用して、ワークスペースなどを設定することなくソースをディスクに取得します。コマンドを試してみたところ、見事に機能しました。TFS 2010 および 2012 で機能すると思います。私が理解できることから、バインドやワークスペース、または後で問題を引き起こすようなものが残されることはありません。インストールする必要があるのは GIT と GIT-TF だけだと思います。
http://www.microsoft.com/en-us/download/details.aspx?id=30474
実際にファイルを GIT リポジトリに取得しますが、これはまったく問題ではありません。エクスポートしたフォルダー内に .git という名前の (隠し?) フォルダーが作成されます。これを削除して、GIT の痕跡を取り除くことができると思います。
誰かがこれを実装した場合、これは簡単なはずですが、期待どおりに動作することを確認してください。
簡単な解決策
Ray Hayesのオプション 2の回答に基づいて、簡単で汚い解決策が必要な人が簡単に使用できる実際のスクリプトをまとめました。詳細については、彼の回答をお読みください。
使用するには:
.
SET COLLECTION_URL="http://localhost:8080/tfs/<collection>"
SET SERVER_DIR="$/<REMOTE_SOLUTION_DIR>"
SET LOCAL_DIR="X:\<YourLocalDir>"
SET TF_DIR="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE"
%TF_DIR%\tf workspace /new /collection:%COLLECTION_URL% /permission:Private /noprompt tmp_batchws
%TF_DIR%\tf workfold /map %SERVER_DIR% %LOCAL_DIR%
cd /d %LOCAL_DIR%
%TF_DIR%\tf get . /Recursive
%TF_DIR%\tf workspace /delete tmp_batchws /noprompt
http://johannblais.blogspot.com/2014/07/tfs-equivalent-of-svn-export.html
TFS コマンド ラインに関しては、「簡単な」オプションはありません。ほとんどの場合、非常に多くの入力が必要になります (単純にデフォルトを設定できないため、毎回コレクション URL を指定する必要がないなど)。指図)
TFS コマンド ラインを「シンプル」にする通常の方法は、毎回指定する必要があるすべての詳細 (サーバー URL や再帰フラグなど) を隠すバッチ ファイルを作成することです。
ただし、TF.exe ではほとんど何でも実行できるため、一時的なマッピングを作成し、Get を実行して、マッピングを再度削除する tf 呼び出しの非常に単純なシーケンスです。