2016-12-19 8 views
1

私はTFS 2012にプロジェクトを持ち、ソース管理にTFSを使用しています。私はコードの1つのブランチを持っています。TFS 2012連続変更の変更セットから変更を再適用

次のシナリオを簡単に解決したいと考えています。

ここには、半ダースの変更セットを持つブランチの例があります。

History of changesets from my example branch

これは(ユーザーをふり、すべては私ではありません!)

  1. 5219キックオフビルドとテスト実行の物語は、これまで行く方法です。
  2. 多くの変更がありました(5220,5221および5222)。
  3. 試運転は5219で終了し、私たちは緑色であり、すべて満足しています。
  4. その後、CIは5222の試運転を実行します。赤色になります。したがって、私の問題は5220,5221、および5222のうちの1つ(またはいずれか)にあることがわかります。
  5. 手順の問題として、最後の既知の緑色にロールバックします(5219)
  6. 5220,5221、および5222には、製品のバックログ項目が戻ってきています - すべてが良いです、私たちは私たちの変更について何か新しいものを見つけました(つまり、私たちが期待していなかったものを壊しました)。
  7. 私たちは緑色なので、別の作業が行われます(5235)。

これまでのところすべて良いとは言いましたが、たとえば5221を返された人にはどうなりますか。

私がしたいことは、最新のものを最新の状態で入手し、5221変更セットからの変更を(サブバージョンでもできるように)再度適用することです。

powertoolsのtfpt getcsコマンドを使用して、変更セット5221を取得する方法を試すことができます。これは私に別のワークスペースとサーバーのバージョンファイルを与えますが、どんなタイプのマージも試みません。 ブランチ全体のブランチをその時点に戻す方法については、「このバージョンを取得する」方法を試すことができます。 5221の一部として行われた変更を最新のバージョンにマージする方法を考えることはできません。

私のTFSをアップグレードし、TFSソースコントロールから移動する以外のアイデア - 非常に短期間ではないが起こるだろうか?私は複数の支店も明確に操縦したいと思う。私の実際のプロジェクトは大きく、モノリシックで、TFSではあまりにも枝分かれしていません。

答えて

2

変更をロールバックする代わりにゲートチェックインを使用してください。ゲーテッド・チェックインは、ビルドが壊れた変更を自動的に拒否します。

+0

回答ありがとうございます。残念なことに、プロジェクトの性質上、CIテスト(主に受入れテスト)には数時間かかることがあります。人々のコードチェックを止めたくないので、すべてのチェックインでそれをゲートすることはできず、すべてのチェックインでCIテストを実行することさえできません。したがって、CIの実行よりも多くのビルドがあります。これは、赤いパイプラインの場合、それを壊してしまった候補が数多くあることを意味します。私たちはユニットテストのためにそれをゲートする(はるかに速い)。 – Jonny

1

5221の変更を手動で最新バージョンに更新する必要があります。自動的な方法はありません。

ワークスペースに最新のバージョンを入手し、チェンジセット5221と最新バージョンを比較して、5221からの差分をコピーして最新バージョンに貼り付け、TFSにチェックインします。

enter image description here

+0

Cheers Cece - ほぼ完璧に動作します(私は完全に言います - あなたは私が何を意味するか知っています)。ターゲットパスのタイプをローカルパス(最新バージョンを取得した後)に変更すると、比較ウィンドウを使用してアイテムをコピーできます。まともな比較ツールを使って、編集やコピーを簡単にすることができればいいと思います。私は何かを差し込むことができるかどうかを見ていきますが、これはほとんどの方法で私になります。 – Jonny

関連する問題