2012-03-06 3 views
1

を競合します。ビルドは、主にすべてのターゲットのソースファイルにビルドバージョン番号を設定します。TFS 2010チェックインブセットは、私がビルドを要求するユーザによって提供されたチェンジセットのいくつかのファイルを変更しゲーテッドチェックインのビルドを持って

ゲートされたチェックインの活動は、ユーザーのシェルブセットをチェックインありません。今度は、変更されたファイルを私のビルドでチェックインして、ユーザシェルフセットのファイルの一部と潜在的に競合することができます。これにより、マージの競合が発生します。

が原因以前のシェルブセットの他のチェックインにマージの競合の場合、チェックインを強制するオプションはありませんVersionControlServer.CheckinShelvesetを使用することです。ユーザーが提供するシェルフセットを変更しようとしましたが、同じユーザーが作成していないシェルフセットを変更することはできません。したがって、私は2番目のシェルフセットを作成し、ビルド・コントローラーに存在するゲート・チェックイン活動が成功するまで待つことになります。

私は変更を解決することができましたが、ビルド・コントローラーでは(ビルド・エージェント上に)ワークスペースがないため、新しいワークスペースを作成し、他のユーザーのシェルセットをアンシェルして、この一つに私の他のブセットをマージして、簡単に、より真剣に、それはかなりの時間がかかるだろうされていないチェックインしようとします。

でブセットをチェックインして、単純にワークスペースがなくても、最新バージョンを上書きするTFSを強制する方法はありますか?または、マージの競合なしにビルドの変更をチェックインする別の方法がありますか?以前ビルドエージェントをチェックすると、ゲーテッドchecinはビルドコントロールのマージの競合で失敗します。

答えて

3

これを実行するコードがコントローラではなくビルドエージェントで実行されている場合は、ワークスペースにアクセスできます。その場合、2つのチェックインがあると考えることができます.1つ目はユーザーの変更、2つ目はコードの変更です。あるいは、単にコードを変更してビルド・エージェントの作業領域からチェックインするだけで済みます。その場合、ユーザーが提出したシェルフセットはチェックインに使用されるのではなく、コードをさらに変更してからチェックすることが基本です。

シェルフセットを強制的にチェックインする方法はありません紛争。

+0

これは、Gated Checkinアクティビティを使用することはできませんが、自分でチェックインすることを意味します。また、選択した要素にビルドラベルを貼り付ける必要があります。私がGatedのチェックイン活動の代わりに私自身をチェックインすると、何かが失われますか?私はすべてのチェックインを行う前に、BuildStatusもチェックする必要があると思います。 –

+0

すべての変更を併合し、ゲートされたプロセスでそれらをチェックインすると、誰が変更を行ったかの履歴が失われます(ただし、チェンジセットコメントを入れることはできます)。 はい、あなたはそれが構築され、成功したテストを実行したことを確認する必要があります。 –

関連する問題