web-dev-qa-db-ja.com

Visual Studio Team System 2008で自動マージオプションを無効にすることはできますか?もしそうならどのように?

別の開発者が作業したファイルをTFSにチェックインするときに、自動マージ機能を無効にして、常に手動でマージする必要があるようにします。これを行う方法はありますか?

63
Bryan Anderson

Visual Studio 2008の時点での短い答えはノーのようです。

3
Bryan Anderson

次のことを試してください(2012年以降のすべてのVisual Studioバージョンで動作します)。

[ツール]-> [オプション]-> [ソース管理]-> [Visual Studio Team Foundation Server]-> [競合が生成されたときに自動的に競合を解決する]のチェックを外します。

enter image description here

118
Andrey

2人が同じファイルを変更するたびに、コードを「マージ」する必要があります。これには3つの形式があります。

  • バージョンを保持する(変更を破棄する)
  • バージョンを保持(変更を破棄)
  • 両方の変更をマージして、両方をブレンドします

衝突を解決する他の安全な方法がないため、「これをオフにする」ことはできません。

マージをオフにできる最も近い方法は、複数のチェックアウトを禁止することです(一度に1人の開発者のみが作業できるようにファイルをロックします)。これにより、2つの同時編集の発生が防止されるため、完全にマージする問題が回避されます。 (開発者がしばしばブロックされ、別の開発者がロックしている間はファイルを操作できないという追加コストがかかります)。これはひどく、通常は非効率的な作業方法です-お勧めしません。

マージの必要性を最小限に抑えることができます。

  • 頻繁にチェックインしてください。多くの小さな変更は競合をマージするために露出を減らしますが、いくつかの大きな変更は露出を増やします。
  • 大規模で頻繁に変更されるファイルを多数の小さなファイルに分割して、2人の開発者が同じファイルを同時に変更する必要性を最小限に抑える
  • ファイルの作業を開始する前に、他の誰かがそれを編集しているかどうかを確認し、他のプログラマーが作業している間にそのファイルの編集を開始する必要がないように「スケジュール」を再編成してくださいソフトロック」、単にマージが必要になる可能性を減らすため)

マージツールをアップグレードすることもできます。 Visual Studioのマージは恐ろしいであり、使用が難しく、コードに問題を引き起こすことがよくあります。信じられないほど何度も噛みついたので、毎回手作業でのマージを苦労しなければなりません。現在、常に完全に自動マージを実行するAraxis Mergeを使用しています。これにより、そのままマージを実行することができます。 (私はその自信を与える別のマージプログラムを使用したことがなく、長年にわたって他のほとんどすべてのオプションを試してきました)。手動マージが必要な場合、「読み取り」のための非常に明確なマージビュー、およびコードの各ビットをマージする方法を選択するための非常に迅速かつ直感的なUIを提供し、非常に効率的にします。私はかつてVSで複雑なマージに3日間苦労しました(あきらめるまでコードを数回破損しました)。その後、Araxis Mergeを購入し、15分で完全にマージ全体を再決定しました。優れたツールは、マージの痛みを本当に取り除きます。

(私は、Araxisとは一切関係ありません。恐ろしいマージツールのほとんどは世間に出せません)

1
Jason Williams