2012-03-30 16 views
4

TFS 2010の手動マージに賛成する2人の開発者がいます.1つはソースブランチ、もう1つはターゲットブランチの2つのビジュアルスタジオを開き、手動で&に変更を貼り付けます。TFSマージはどのように機能しますか?

自動マージが危険であると信じているので(他の開発者が望んでいなくても変更をもたらすので)、このようにします。典型的なテストケースは以下の通りです:

ソース支店:

TestFile.cs 
Changesets: 
1. Line 5 changed 
2. Line 13 changed 

ターゲット支店:

No changes yet. 

を今私はTESTFILEのみチェンジセット#2を統合したいと思います。 cs

結果のテスターゲットブランチのtFile.csには、元の行5と変更された行13または行5と13の両方が自動的にマージされる場合が含まれます。

実際に私は両方の変種を見てきましたが、私は理由を知らないのです。

どのようにTFSマージ作業をどのように正確に行うかについての素晴らしいリンクがあります。

高度なシナリオ: ソース支店:

TestFile.cs 
Changesets: 
#1. Line 5 changed, Line 6 added 
#2. Line 13 changed 

ターゲット支店:

No changes yet. 

私はターゲットブランチに取得すべきか、私は唯一のチェンジセット#2をマージした場合は?チェンジセット#2に沿って変更された行だけを取得できますか?

答えて

5

マージすることを選択した場合は、次のようなダイアログが開きます:
enter image description here
をあなたは、単に「次へ」を選択し、デフォルトの設定=「特定のバージョンまでのすべての変更を」保存する場合は、TFSを考慮の両方がかかりますあなたのチェンジセット(1 & 2):他の言葉で、それはターゲット支店でTestfile.csをチェックアウトし、編集します両方ライン5 (上の写真にマークされたように)あなたが「選択チェンジ」を選択した場合は、別のダイアログがしますマージに実際に参加したいチェンジセットの候補を選択する場所が表示されます。したがって、チェンジセット2を選択すると、TFSはターゲットブランチの編集行のみをチェックします。

「手動」マージとは、冗長な行為であることを申し訳ありません。

編集あなたの質問 高度なシナリオに
:ソース支店:私は唯一のチェンジセット#2
答えは明確な「はい」であるに応じて変更ライン13を取得します。

状況を特定する1つの方法は、SourceControl &内のPlayground-folderで始まり、同僚と何が起こるかを確認することです。TFS-mergeは本当に簡単です。this古い投稿は調査に役立つかもしれません。

私はあなたの意見に同意することができます。一方、あなたの場所では、TFSのバグは私の優先順位リストでは非常に低いです。あなたの組織内のマージプラクティスを最優先課題として調査します。あなたが言うことは、私の意見では、単に続けることはできません。

+0

問題は、チェンジセットを1つだけ選択していて、このチェンジセットの一部ではない変更を取得していたことです。しかし、それはいつもそうではありません、実際にはいつかしか起こらず、なぜ(恐ろしい慣習によって引き起こされたのか)わかりませんが、別の問題があります。私は恐ろしい習慣を禁止するのに十分な議論を得るために、低レベルでのTFSマージを理解しようとしています。 – BanditoBunny

+0

"このチェンジセットの一部ではない変更"は、私の考えでは不可能です。このような状況が発生した場合は、MSに報告する必要があるTFSバグか、誤用の結果です。 – pantelif

+0

私は昨日自分の目でそれを見てきました。 TFSのバグは私の優先順位のリストでは非常に低いので、それ以上テストするつもりはありません。私の問題は、 "手作業のマージ"の人は、これを自分の練習の正当性として使うということです。そして、私はそのような動作を引き起こす可能性があることを理解したい、私の最初のアイデアはTFSがマージを適切に処理できない理由であることです。別の考え方は、ファイルの構造的な変更(改行、削除された行)+チェンジセットに基づく選択的なマージがTFSを誤動作させることです。 – BanditoBunny

関連する問題