WinMergeをMercurialのDiffツールとして使用する方法


19

Mercurialの分散バージョン管理システムを使用していますが、独自の内部diffツールの代わりにWinMergeを使用するように構成する方法を知りたいのです。マージツールとして既にWinMergeを持っていますが、次のように入力するときにMercurialでWinMergeを使用するようにします。

hg diff

それを行う方法はありますか、またはMercurialの内部diffツールにこだわっていますか?

回答:


24

TortoiseHg FAQから:

これらの行を個人のMercurial.iniファイルに追加します

[拡張子]
extdiff =

[extdiff]
cmd.winmerge = C:\ Program Files \ WinMerge \ WinMergeU.exe
opts.winmerge = / e / x / u / wl

次に、グローバル設定ツールを実行します。TortoiseHgタブで、Visual Diffコマンドのドロップダウンリストにwinmergeが表示されます。winmergeを選択して適用し、閉じます。

この同じアプローチを使用して、ほぼすべての視覚的な差分ツールを追加できますが、リリース0.8以降を使用していない限り、TortoiseHgで使用する場合、差分ツールがディレクトリ差分をサポートできる必要があることに注意してください。

ジョエルはまた、ソリューションを提供し、ここであなたがCygwinの下のMercurialを実行する場合に。

WinMergeコマンドライン引数の説明はこちら。概要:

  • /e Escキーを1回押すだけでWinMergeを閉じることができます
  • /x 同一ファイルの比較を開始すると、(情報ダイアログを表示した後)WinMergeを閉じます
  • /u WinMergeが最近使用した(MRU)リストにいずれかのパス(左または右)を追加しないようにします
  • /wl 左側を読み取り専用として開きます

TortoiseHGを使用していません。CygwinでMercurialを実行していません。mercurial.berkwood.comのデフォルトのコマンドラインMercurialインストーラーを使用しています。あなたのソリューションは、「hg winmerge <file>」と入力して以前のバージョンとの差分を表示できるという意味で機能しましたが、「hg diff <file>」は依然として同じ(むしろい)diffを表示しますツール。それでも、何もないよりはましです。
位2009

この答えは、TortoiseHgディレクトリ(C:\ Program Files \ TortoiseHgなど)でMercurial.iniを編集することを前提としていると思います。Mercurialディレクトリ(たとえば、C:\ Program Files \ Mercurial)で編集すると、これは機能しません(少なくとも私にとっては機能しませんでした)。
アシュリーデイビス

またc:\ Program Files(x86)\ WinMerge \ WinMergeU.exe
Avram

構成ファイルでWinMergeへのパスを引用符で囲まないでください。引用符で囲まないと、機能しません。
Drealmer

7

これが私にとっての仕組みです-tortoisehg以外の純粋な水銀コマンドライン

まず、ファイルを編集します(64ビットWindowsの場合)

C:\ Program Files(x86)\ Mercurial \ Mercurial.ini

[extensions]
; must uncomment this line
extdiff =

[extdiff]
; i'm using winmerge unicode version
cmd.winmerge = C:\Program Files (x86)\WinMerge\WinMergeU.exe
; it explains winmerge command line parameters here: http://winmerge.org/docs/manual/CommandLine.html
opts.winmerge = /r /e /x /u /wl

次に、「hg diff ...」の代わりに「hg winmerge ...」を使用できます。


バックグラウンドでwinmergeを実行すると、コミットメッセージの設定中に変更を確認したり、コマンドラインで変更されたファイルの統計を表示したりできるので便利です。これは始める含まれている水銀のディレクトリにバッチファイルを置く行うために/ B HG WinMergeの<NEWLINE> HG diffの--stat
ゼブラ

3

さて、以前に与えられた答えは私に望ましい効果を与えません。リビジョンを差分およびインプレース編集することはできません(TortoiseSVNで使用可能な同じ機能を意味します)。そのために、このセクションにmercurial.iniを追加しました。

[merge-tools]
winmerge.regkey=Software\Thingamahoochie\WinMerge\
winmerge.regname=Executable
winmerge.priority=-10
winmerge.args=/e /x /wl /ub /dl other /dr local $other $local $output
winmerge.fixeol=True
winmerge.checkchanged=True
winmerge.gui=True
winmerge.diffargs=/r /e /x /ub /wl /dl '$plabel1' /dr '$clabel' $parent $child
winmerge.diff3args=
winmerge.dirdiff=True

これはhttp://blog.stevehorn.cc/blog/easy-mercurial-visual-diff-between-two.htmlから取得されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.