2016-07-21 3 views
0

This question은 병합에 충돌이있는 파일을 보는 방법을 묻습니다. 또한 모든 갈등에 대한 diff 파일의 목록을 신속하게 볼 수 있기를 원합니다. (병합 된 파일의 내용이 깔끔하게 처리되는 것과는 대조적입니다.)머큐리얼 (또는 자식) 병합에서 모든 충돌의 차이를 어떻게 확인할 수 있습니까?

예를 들어 이렇게하면 신속하게 분배 할 수 있습니다 병합 편집기를 사용하지 않고 --tool :other--tool :local 또는 --tool :union을 사용하여 문제를 해결하면 "노이즈"가 발생하는 일부 충돌이 있습니다.

나는 (지금 당장 공식화하고있다.) 나는 자식과 수은을위한 작은 차이점과 유사 할 것이므로, 질문을 떠날 위험이있다.

+0

을 꽤 많이 병합을해야한다. 이 시점에서 아직 해결되지 않은/unmerged 파일은 충돌이 작업 트리에 기록되어 hg의'set : unresolved()'또는 git의'ls-files --unmerged' (후자는 장시간 형식의 출력을 주장하기 때문에 사용하는 고통이 있지만'git diff-files --name-only --diff-filter = U'도 있습니다. – torek

답변

0

: merge3 도구를 사용하여 병합하거나 해결할 때 문제가 발생하면 파일에 마커가 남습니다. 파일 세트 unresolved()에는 충돌이있는 파일 만 들어 있습니다. 단지 파일 이름과합니다 (깨끗하게 통합 섹션을 무시) 미해결 부분 인쇄 펄을 사용 : 당신이 당신의 자신의 대답에 언급 한 바와 같이

hg merge --tool :merge3 <branchtomerge> 
hg diff 'set:unresolved()' | perl -ne 'print if m|^\+\+\+ | or m|<<<+ local$| .. m|>>>+ other$|' 
+0

나는 게시 한 후 깨달았습니다. 그러나 이것이 말한대로하는 동안, 나는 그것을 원했던 것처럼 사용할 수 없습니다. 갈등을 간단히 해결할 수 있다고 판단되면 갈등이없는 모든 병합을 무효화 할 수 있기 때문에 (예 :) '해결할 수 없습니다. –