1

私の会社では、Visual Studio Team Services (以前の Visual Studio Online、Team Foundation Service) を使用しています。開発者として、私は git-tf を使用して Git で作業を行っています。継続的インテグレーションを適用するために、 Team Explorer Everywhere CLCを使用するプラグインを使用して Team Services からコードをフェッチする Jenkins を実行しています。

最近、Team Services へのコミット中に、次のメッセージが表示されました。

gottfried@lubuntu-virtual-machine:~/git_repo$ git-tf チェックイン

$/fireAnalytics にチェックイン: 12%、コミット a0bfea1
git-tf: 次のエラーのため、TFS への変更を保留できませんでした。エラーを修正して、チェックインを再試行してください。アイテム $/fireAnalytics/packages/fdssuite/src/fdssuite/tests/couch_devices.png は、ワークスペース Hudson-hhpberlin fireanalytics-MASTER で Sascha Gottfried によってチェックアウトされています。

上記のワークスペース (ワークスペース Hudson-hhpberlin fireanalytics-MASTER ) は、Jenkins CI サーバーによって作成されます (TEE-CLC を使用する TFS プラグインを使用)。上記のファイルは、統合テストを実行するビルド ステップ中に作成され、バージョン管理下にはありません。

ワークスペースは、TFS プラグイン オプション 'use update' を使用するように設定されています。ドキュメントからの引用

このオプションがチェックされている場合、ワークスペースと作業フォルダーはビルドの最後に削除されません。これによりビルドが高速になりますが、アーティファクトはビルド間で残ります。チェックされていない場合、プラグインはワークスペースを作成し、ビルドの開始時にローカル フォルダーにマップし、ビルドの最後にワークスペースを削除します。

CI セットアップが TFS チェックインに与える影響と、この状況を修正するにはどうすればよいですか?

4

2 に答える 2

2

ファイルに加えられた変更をマージする方法がないため、バイナリ ファイルは TFS によって排他的にチェックアウトされます。あなたの名前のワークスペースでこのファイルをチェックアウトしたようです。他のワークスペースでそのチェックアウトを元に戻す (または少なくともロックを元に戻す) 必要があります。これは、ソース管理エクスプローラーまたはコマンドラインから実行できます。

標準のコマンド ラインから、次のコマンドを発行します。

tf undo /workspace:"Hudson-hhpberlin fireanalytics-MASTER";"Sascha Gottfried" "$/fireAnalytics/packages/fdssuite/src/fdssuite/tests/couch_devices.png"

CLC コマンドラインは非常に似ていると思います (ただし、現時点では確認できません)。

ビルド アカウントを使用する場合は、非排他的なチェックアウトを実行するように構成し、ビルドの失敗時 (ゲート チェックインの場合) にロックされたファイルが解放されるようにする方がおそらく安全です。この種の状況は、最新のシェルフセットをビルドするゲート チェックインでよく発生しますが、何らかの理由で失敗し、シェルブセット内のファイルがチェックアウトされたままになります。バイナリ ファイルの場合、それらのチェックアウトは排他的になります。

バイナリ ファイルを排他的にチェックアウトしないように TFS を構成することもできます。Visual Studio では、これらの設定はTeam> Team Foundation Server Settings>の下にありますSource Control File Types

于 2014-01-17T15:54:39.010 に答える
0

どうやら Jenkins CI サーバーが TFS コミット中に新しいビルドをトリガーしたようです。Jenkins ジョブが TFS リポジトリを毎分ポーリングするように設定されていたためです。Jenkins CI を一時的にシャットダウンしたところ、TFS コミットが再び成功しました。

于 2014-03-03T21:13:45.403 に答える