2009-05-12 9 views
5

मैं कोड का एक बहुत ज्यादातर का उपयोग कर समीक्षा "एचजी में -p/path/to/रेपो" कमांड और यह बहुत अच्छा होगा अगर इसके उत्पादन में देखा जा सकता है कर कुछ बाहरी कार्यक्रम (जैसे vimdiff)। क्या इसे हासिल करने का कोई तरीका है?देखने परिणाम

उत्तर

2

मेरे त्वरित और गंदा पहले जवाब था: "Extdiff extension देखें, तेज के साथ वितरित और उनके साइट पर लिखित।" जो वास्तव में केवल 15% उत्तर था।

निकटतम जवाब मैं अब तक देखा है एक विस्तार rdiff कहा जाता है के साथ शुरू होता है। rdiff 'आने वाले' कोड का उपयोग करता है और इसलिए आपके आधे प्रश्न का पता लगाता है। इस एक्सटेंशन का उल्लेख earlier SO thread में किया गया था जो वर्तमान कार्य प्रतिलिपि (वर्तमान भंडार प्रतिलिपि के विपरीत) के खिलाफ एक rdiff लागू करने के लिए एक बैश स्क्रिप्ट का एक उदाहरण देता है। स्क्रिप्ट "एचजी डिफ" का उपयोग करके समाप्त होती है, इसलिए यह आपके द्वारा एक्स्टिफ़ सेट पर जो भी हो, उससे प्रभावित होगा।

rdiff.py केवल 146 लाइनें और उचित रूप से समझदार है, और बैश स्क्रिप्ट 5 लाइन लंबी है। हालांकि आपके प्रश्न का पूर्ण उत्तर नहीं है, मुझे लगता है कि यह रास्ता बताता है।

+0

अगर मैं गलत हूं तो कृपया मुझे सही करें, लेकिन extdiff केवल आपके स्थानीय परिवर्तनों के साथ काम करता है। ऐसा लगता है कि इसका उपयोग 'इनकमिंग/आउटगोइंग' कमांड के साथ नहीं किया जा सकता है ... – pachanga

+0

आप सही हैं - मैंने वास्तव में आपका प्रश्न नहीं पढ़ा। कुछ शोध करने में (जो मैंने जवाब देने से पहले किया होगा) ऐसा लगता है कि "हुक" में उत्तर की शुरुआत हो सकती है। मैं वर्तमान में आपके प्रश्न के साथ http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html पढ़ रहा हूं। अगर मुझे कुछ सार्थक लगता है तो मैं अपना जवाब संपादित करूंगा। –

0

मैं तेज मेलिंग सूची पर एक ही प्रश्न पूछा और कुछ interesting suggestions मिला है। सबसे अच्छा एक मैं पसंद आया मैट मैकाल से आया है जो करने पर निर्भर करता:

1) का उपयोग करें "एचजी भेजे --bundle in.hg" भेजे परिवर्तन का एक बंडल

2) का उपयोग करें "एचजी आर में बचाने के लिए .hg extdiff "यह एक अच्छा विचार की तरह लगता है, दुर्भाग्य से, मैं एक अपवाद हो रही है जबकि परिवर्तन

देखने पर:

[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 

मैं मेलिंग सूची के लिए इस त्रुटि के रूप में अच्छी तरह से तैनात है, लेकिन कोई उत्तर मिला अब तक ...

संबंधित मुद्दे