"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을 받았습니다.
1)
2)에 -R HG "사용 들어오는 변화의 번들을 저장"HG 들어오는 --bundle in.hg "사용 : 내가 좋아하는 가장 좋은 사람은 아래로 비등하는 맷 맥콜에서 온
[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
당신 말이 맞아요 - 난 정말 당신의 질문을 읽지 않았다. 어떤 연구 (내가 대답하기 전에 했어야했는데)에서 "후크 (hooks)"는 대답의 시작을 포함 할 수 있습니다. 귀하의 질문을 염두에두고 현재 http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html을 읽고 있습니다. 나는 가치있는 것을 찾으면 내 대답을 편집 할 것입니다. –