0

機能を追加するために、デフォルトのマージウィンドウのクローンを作成しています。

以下のコマンドからグリッドにマージ候補がすでにあります。

  MergeCandidate[] candidates = tfs.GetMergeCandidates(edtSelectedSource.Text, cbxTargetBranchs.Text);

ここで、ユーザーが1つ以上の候補を選択したので、それらをマージする必要があります。

ただし、TFS API VersionControl.Mergeには、ソースパスとターゲットパスが必要です。

最初に、私の質問ですが、各候補を繰り返し、そのチェンジセットの各ファイルを1つずつマージする必要がありますか?次に、チェンジセットからターゲットパスを取得するにはどうすればよいですか?

4

2 に答える 2

3

まず、TFS APIを使用してかなりの量のプログラミングを行いましたが、マージは自動化に盲目的に信頼することは決してありません。マージの競合は、人間が最も適切に処理します。はい、それは苦痛であり、多くの場合自動化することができますが、他の多くの場合-物事はひどくうまくいかない可能性があります。プロダクションブランチでこれを行う前に、私は2回考え、次に2回考えます。

役立つヒントを次に示します。

一時ワークスペースを作成する必要があります。ワークスペースは、すべてが行われるサンドボックスです。ワークスペースにはファイルを含めることができるため、ファイルの場所を関連付けることができます。ワークスペースアイテムには豊富なメタデータがあります。

WorkspaceクラスとWorkspaceInfoクラスを見てください。

次に、ワークスペースクライアントを見てください。

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.item.aspx

于 2013-02-10T23:09:48.550 に答える
0

チェンジセットが継続的である限り、1回のマージ呼び出しでそれを行うことができます。それらが連続していない場合は、連続ブロックごとにn個のマージを送信する必要があります。チェンジセット10、15、および20を選択し、これらが連続している(つまり、その範囲内に追加の候補がない)場合、versionFromが10でversionToが20のマージを送信するとします。

パスに関しては、QueryMergeCandidatesに渡したパスを使用する必要があり、完全な再帰タイプも指定する必要があります。

于 2013-02-11T23:37:44.727 に答える