web-dev-qa-db-ja.com

TFSで、特定のチェンジセットでベースレスマージを行うにはどうすればよいですか?

[〜#〜] tfs [〜#〜] のほとんどのものと同様に、あなたはあなたが交渉した以上のものを手に入れます。この場合、マージ中に予想よりも多くのファイル変更が見られます。

私には2つの子ブランチがあり、わくわくしてそれらをbranch1とbranch2と呼びます。どちらも、作成されてから変更が加えられています。 branch2から12個の特定のチェンジセットを取得し、それらをbranch1にマージする必要があります。 branch2からの変更は、親ブランチに戻すことはできません。したがって、これは根拠のないマージの単純なケースですが、結果は私が期待したものではありません。

最初のチェンジセットを使用して、次のコマンドを実行しました。

tf merge /baseless /recursive /version:C95654 branch2 branch1

チェンジセット95654には12個の変更されたファイルが含まれていますが、このコマンドの後、競合のある56個の編集済みファイルを取得します。指定されたチェンジセットを1つのブランチから別のブランチにマージすることだけを期待していましたが、フォルダー全体がマージされたようです。

では、チェンジセットを指定したときに、12個ではなく56個のファイルが変更されるのはなぜですか?また、マージされるものをそのチェンジセットのコンテンツのみに制限するにはどうすればよいですか?

41
SecretDeveloper

特定のチェンジセットをマージする必要がある場合は、次のステートメントを使用する必要があります。

tf merge /baseless /recursive /version:C95654~C95654 branch2 branch1

(これは、チェンジセットC95654のみを意味します)。

使用しているコマンドラインは、C95654以前およびC95654以降のすべてのチェンジセットを意味します。

59
user161933

2つのブランチにtfsパスを使用する必要がありました。手順は次のとおりです。目的のワークスペースに両方のブランチを追加します。最新情報を入手してください。ターゲットフォルダーでWindowsPowerShellを開きます。 tfsパスを取得する

>tf workspaces /format:detailed 
>tf workfold

次に、ブランチに$ pathsを使用します。 1つのチェンジセットのチルダベースレスマージ間で同じチェンジセット番号。

>tf merge /baseless /recursive /version:C999~C999 "$/MyRepo/Current" "$/MyRepo/Development"

詳細はこちら--- http://blogs.msdn.com/b/bharry/archive/2011/08/31/merge-enhancements-in-tfs-11.aspx

1
s6712