2009-05-12 10 views

答えて

2

最初の回答は「Extdiff extensionを参照してください。水銀で配布され、サイトに文書化されています。」これは本当に答えの約15%に過ぎませんでした。

私が今見た最も近い答えは、rdiffという拡張子から始まります。 rdiffは「着信」コードを使用しているため、質問の半分に対応しています。この拡張はearlier SO threadで言及されており、現在の作業コピー(現行のリポジトリのコピーとは対照的に)に対してrdiffを実装するbashスクリプトの例を示しています。スクリプトは "hg diff"を使って終了するので、extdiffが設定されているものの影響を受けます。

rdiff.pyはたった146行で合理的に分かりやすく、bashスクリプトは5行です。あなたの質問に対する完全な答えではありませんが、私はその点を指摘しています。

+0

私が間違っている場合は私を修正してください。しかし、extdiffはあなた自身のローカル変更でのみ動作します。それは、 '着信/発信'コマンドで使用することはできないようです... – pachanga

+0

あなたは正しいです - 私は本当にあなたの質問を読んでいない。いくつかの研究(私が答えを出す前にやっていたはずだった)では、 "フック"には答えの始めが含まれているように見えます。私は現在あなたの質問を念頭に置いてhttp://hgbook.red-bean.com/read/handling-repository-events-with-hooks.htmlを読んでいます。私は何か価値のあるものが見つかると私の答えを編集します。 –

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」これまでのところ...

関連する問題