"hg in -p/path/to/repo"コマンドを使用したコードレビューが多いので、出力を見ることができれば非常に良いでしょういくつかの外部プログラム(例えばvimdiff)。それを達成する方法はありますか?外部diffビューアのMercurial in/outコマンドの結果を表示
5
A
答えて
2
最初の回答は「Extdiff extensionを参照してください。水銀で配布され、サイトに文書化されています。」これは本当に答えの約15%に過ぎませんでした。
私が今見た最も近い答えは、rdiffという拡張子から始まります。 rdiffは「着信」コードを使用しているため、質問の半分に対応しています。この拡張はearlier SO threadで言及されており、現在の作業コピー(現行のリポジトリのコピーとは対照的に)に対してrdiffを実装するbashスクリプトの例を示しています。スクリプトは "hg diff"を使って終了するので、extdiffが設定されているものの影響を受けます。
rdiff.pyはたった146行で合理的に分かりやすく、bashスクリプトは5行です。あなたの質問に対する完全な答えではありませんが、私はその点を指摘しています。
0
私は水銀メーリングリストで同じ質問をして、interesting suggestionsを得ました。私が気に入った最良のものは、つまるところマット・マッコールから来た着信変更
2の束を保存するために、「HGの着信--bundle in.hg」を使用)
1)で」HGの-Rを使用
[email protected] $ hg -R /tmp/in.bundle extdiff
** unknown exception encountered, details follow
** report bug details to http://www.selenic.com/mercurial/bts
** or [email protected]
** Mercurial Distributed SCM (version 1.1.2)
** Extensions loaded: alias, fetch, extdiff, graphlog, hgk, rdiff
Traceback (most recent call last):
File "/usr/bin/hg", line 20, in <module>
mercurial.dispatch.run()
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
20, in run
sys.exit(dispatch(sys.argv[1:]))
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
29, in dispatch
return _runcatch(u, args)
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
45, in _runcatch
return _dispatch(ui, args)
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
367, in _dispatch
ret = _runcommand(ui, options, cmd, d)
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
416, in _runcommand
return checkargs()
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
376, in checkargs
return cmdfunc()
File "/var/lib/python-support/python2.6/mercurial/dispatch.py", line
361, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/var/lib/python-support/python2.6/mercurial/util.py", line 715, in check
return func(*args, **kwargs)
File "/var/lib/python-support/python2.6/hgext/extdiff.py", line 203,
in extdiff
return dodiff(ui, repo, program, option, pats, opts)
File "/var/lib/python-support/python2.6/hgext/extdiff.py", line 123, in dodiff
node1, node2 = cmdutil.revpair(repo, opts['rev'])
File "/var/lib/python-support/python2.6/mercurial/cmdutil.py", line
123, in revpair
return repo.dirstate.parents()[0], None
File "/var/lib/python-support/python2.6/mercurial/bundlerepo.py",
line 229, in __getattr__
raise AttributeError(name)
AttributeError: dirstate
私もメーリングリストにこのエラーを投稿が、何の回答を得ていない:これは、残念ながら、私は例外を取得しています、良いアイデアのように聞こえますが、変更に
を表示するの.hg extdiff」これまでのところ...
私が間違っている場合は私を修正してください。しかし、extdiffはあなた自身のローカル変更でのみ動作します。それは、 '着信/発信'コマンドで使用することはできないようです... – pachanga
あなたは正しいです - 私は本当にあなたの質問を読んでいない。いくつかの研究(私が答えを出す前にやっていたはずだった)では、 "フック"には答えの始めが含まれているように見えます。私は現在あなたの質問を念頭に置いてhttp://hgbook.red-bean.com/read/handling-repository-events-with-hooks.htmlを読んでいます。私は何か価値のあるものが見つかると私の答えを編集します。 –