5

UltraCompare Proは最初にリリースされてからユーザーであり、非常にフル機能の比較およびマージツールだと思います。ただし、DVCSを詳しく調べているので、DVCSは、他のツール(ほとんど?)とは異なる方法で3方向マージを処理することがわかりました。それで、それがなぜなのか、そしてそれが原因で何かが足りないのではないかと思います。

UltraCompareには、3つのマージパネルがあります(ベース、ローカル、その他と呼びましょう)。すべてのマージアクションは、これらのパネル内で行われます。実際には、これは、中央のペイン(ローカル)で作業を行い、右側(その他)または左側(ベース)の共通の祖先からの変更をマージすることを意味します。中央のペインはセッション中に変更されてから保存され、マージの結果としてコミットされます。4番目のペイン(出力ウィンドウ)には、差分結果に関する情報のみが含まれています。

スクリーンショットUC
(出典:ultraedit.com

他のツールでは、3つのペインは読み取り専用の状態でのみ存在し、4番目の下部のペイン(出力)はすべてのマージが行われる場所であるように見えます。追加のマージウィンドウを使用する理由は何ですか?すべての変更を追跡する方が簡単ですか?それとも、誰もが常にこのようにやっているので、その動作をコピーしているのでしょうか?これについてどう思いますか?

スクリーンショットkdiff3
(ソース:hginit.com

最良の答えがあるのか​​正しい答えがあるのか​​わからないので、まだこの質問をCWにしませんが、ここでもあなたの意見を尊重します。

4

4 に答える 4

6

私には簡単に思えますが、変更を加えているときに、変更されていない「ローカル」バージョンを表示したままにしておくことをお勧めします。

original       local         other           merged

               bar= foo+1    bar= foo+2      bof= foo+2
                                             zot= foo+1
...            ...           ...             ...
print foo      print bar     print foo+1     print bar??

と の両方localother新しい変数が導入されましたbar。最初の変更をbof/zotにマージし、お茶を飲みに行き、戻ってきてprint. 待って、何がbar入っていたのlocal?元localのファイルが存在しない場合、その情報は失われており、別のテキスト エディターで何が起こったのかを調べる必要があります。

これは不自然な例ですが、この種のことは、頭の中にすべてを保持して一度に行うことができない変更のセットに対して簡単に発生する可能性があります。0一般に、3WM には常に 2 つの変数要素、変更 A と変更 B があります。その中のすべての情報を再現するには、(オリジナル)、AB、およびAB(マージ)のすべての可能な順列に対して 4 つのビューが必要です。

于 2010-04-12T11:45:58.697 に答える
4

プロジェクト: Mergeは、私が XML 用に作成した比較およびマージ ツールです。私は標準的な 4 ペイン アプローチを見て、データを表示する非常に無駄な方法であるとして、ほぼ即座に破棄しました。上記のスクリーンショットで十分に証明されたポイントで、ほぼすべてのペインがまったく同じデータを複数回表示しています。

したがって、すべての入力ファイルを表示し、それらのどれが出力に寄与するかを示すための単一ペインのアプローチを開発しました。(または、ファイルを比較するときの違いはどこにありますか。)テキストの完全に自由な形式の編集を許可していませんが (主に XML ノードの管理方法と参照方法が原因で)、マージ出力の一部は多かれ少なかれ編集できます。通常のテキスト エディタで使用します。(私のエディターのキーボード ショートカットは、ナビゲーションに関する限り、Visual Studio のキーボード ショートカットに厳密に従っています。) 最も顕著なのは、文字データ、コメント、および属性値です。XML ノード全体をカット アンド ペーストすることもできます。(ただし、明らかに外部アプリケーションへのテキストとしてのみです。)

次のスクリーンショットは、ほとんどの変更が「左」ファイルに表示され、選択された変更の下に未解決の競合がある 3 者間マージを示しています。

代替テキスト

于 2010-11-21T10:49:08.040 に答える
3

個人的には、無料の perforce マージ ツール (p4merge) が気に入っています。また、4 つのウィンドウがあります。上部中央はオリジナル (分岐前)、左側は宛先ブランチ、右側はソース ブランチで、下部は編集可能です。

3つの元のファイルすべてにマージに影響を与える可能性のある重要な情報が含まれている可能性があるため、オプション1よりもこれが気に入っています.

于 2010-04-12T11:08:35.127 に答える
2

2 つのファイルの違いを表示するには、基本的に 2 つの方法があります。

  • 2枚のパネルを並べて
  • 1 パネル

グラフィカルに:

aaa aaa
bbb ···
··· ccc
ddd ddd

 aaa
-bbb
+ccc
 ddd

最初のものを使用するプログラム (WinMerge など) もあれば、選択できるプログラム (TortoiseMerge や Google Project Hosting など) もあります。おそらく好みの問題ですが、変更を追跡したい場合は、2 番目の方法がより直感的だと思います。ただし、変更を編集する場合は、2 つのパネルが必要です。

3 者間マージを行う場合、異なるレイアウトはこれから発生します。Ultra Compare は単一パネル アプローチを使用して変更を表示するため、2 つのパネルと 3 つ目のパネルを編集することができます。他のプログラムは 2 パネル アプローチを使用して変更を表示するため、3 つのパネルと編集用の 4 つ目のパネルが表示されます。

繰り返しますが、それは単なる好みの問題だと思います。

于 2010-04-12T11:34:15.513 に答える