6

私はクリーンアップしようとしている非常に乱雑な TFS 構造を持っています (前任者のおかげです)。親/子関係のないブランチから別のブランチに変更セットを選択的に移動する必要があり、それらの変更を共有トランクを通過させたくない状況があります。これどうやってするの?

ベースレス マージを試してみました - TFS では、特定の変更セットに対してベースレス マージを行うにはどうすればよいですか? - マージする変更がないことを教えてくれました。

私が達成したいのは、このTFS のようなものです:シェルブセットを別の場所に復元できますか? 変更セットを除いて。

GITでは、これは単純なチェリーピックだと思います。

私の構造は次のようになります。

   Y-C1-C2-C3
  /
X-------------
    \
     Z

問題は、X を通過せずに C2 を Y から Z に取得するにはどうすればよいかということです。

4

2 に答える 2

3

同様の状況がありますが、私たちの場合、複数のブランチから「スクラッチ」ビルド ブランチへのベースレス マージを行います。これを実現できた唯一の方法は、TFS API を利用して独自のユーティリティを作成することでした。

幸いなことに、これは数百行未満のコードで実現できるはずです。

基本的な手順は次のとおりです。

  • TFS に接続する
  • VersionControlServer のインスタンスを取得します (VCS と呼びましょう)
  • ワークスペースを作成する
  • するVCS.GetChangeset()
  • を反復処理して、Changes変更された項目のリストを取得します
  • Workspace.Mergeソース ブランチからデスティネーション ブランチまでの項目ごとにa を実行します。
  • 宛先ブランチのアイテムをチェックインします。
  • ワークスペースを削除
于 2010-09-13T12:43:31.683 に答える
2

Visual Studio を使用して行う方が簡単です。

Visual Studio では、ソース管理マージ ウィザードを使用して、関連のないブランチをマージします。

選択的な変更セットをマージするオプションがあります。唯一の制限は、変更セットが連続している必要があることです

于 2017-11-16T17:36:15.047 に答える