2012-01-25 2 views
12

쉬운 일을 어렵게하기 때문에 Mercurial과 Python에 좌절감을 느낍니다. 나는 사소한 충돌이 있고 의욕 내가 알지도 못하는 무엇을해야 하는지를 어떤 제안을 제공하지 않기 때문에 방법이 사소한 파일 충돌 해결 :이 Mercurial 충돌을 해결하는 방법은 무엇입니까?

KDiff3

갈등은 사소한하지만를 내가 해결할 수없는 경우 이것은 복잡한 것도 해결할 수 없습니다. 원하는 방식으로 파일을 편집하고 어디서나 다시 커밋 할 수 있습니까? hg merge을 실행해야합니까? Mercurial은 왜 내가 유지할 버전을 선택할 수 없습니까? 천천히 작성된 맨 페이지를 파기하지 않고 왜 사소한 일을 거의 불가능합니까?

+1

레코드 용으로, 이는 Mercurial과 Python이 아닌 kdiff3 프로그램의 사용에 관한 것이 아닙니다. – Tobias

답변

24

KDiff3 documentation, 특히 섹션은 merging and the output window입니다. 충돌을 해결하려면 live 또는 january이 해당 라인에 적합한 지 결정해야합니다. 그 결정은 당신이 만드는 것입니다. 당신이 어떤 것을 의미하는지 알 수있는 도구는 없습니다. KDiff3에서

, 당신은 눌러 Ctrl 키가 + 3 january이 나 바닥 창의 여백에서 마우스 오른쪽 버튼을 클릭하고 원하는 라인을 선택을 선택, + 2live을 선택 Ctrl 키를 누릅니다. 하단 창을 클릭하고 수동으로 행을 편집 할 수도 있습니다.

실례를 드리겠습니다. configure your merge tool 원하는 방식으로하겠습니다. TortoiseHg는 KDiff3를 목록의 맨 위에 놓는 기본 구성으로 제공되지만 원하는 경우 다른 도구를 사용할 수 있습니다. 병합 도구는 실제로 4 가지 파일 이름 (기본, 상위 1, 상위 2)과 출력 파일 이름을 비교하는 세 개의 파일을 허용하는 프로그램입니다.

명령 줄에서 충돌을 해결하려면 적절한 명령 줄 3 방향 병합 도구를 시작해야합니다. 원하는 경우 예를 들어 merge with vim 수 있습니다. (내가 vimdiff에 대해 아무것도 몰라 무서워, 나 자신을 KDiff3 사용합니다.)

당신이 도구 팝업 병합보고 싶어하지 않는 경우에, 당신은

[ui] 
merge = internal:merge 

만들기 위해 설정할 수 있습니다 Mercurial은 내부의 3 자 합병만을 사용합니다. 편집 내용이 충돌하지 않으면 파일을 병합합니다. 충돌이 발생하면 파일은 "unresolved"로 표시되고 충돌 마커는 파일에 저장됩니다.

그런 다음 원하는 파일 버전을 얻으려면 파일을 직접 편집해야합니다. 당신은 hg resolve your-file 완전히 병합을 다시 시작

$ hg resolve --tool internal:other your-file 

:

$ hg resolve --tool internal:local your-file 

또는 기타 버전 : 당신은 또한 로컬 (당신의) 버전 중 하나를 다시 병합하고 선택할 수 있습니다. 파일을 커밋하기 전에 "해결됨"으로 표시해야합니다. 이것은 hg resolve --mark your-file으로 완료됩니다. 현재 병합 상태에 대해서는 hg resolve --list을 참조하십시오.

+0

Martin 감사합니다. 가능하다면 커맨드 라인에서 해결할 수 있기를 바랍니다. –

+1

맞습니다. KDiff3에는 가장 직관적 인 인터페이스가 없습니다. 잠시 후에는 매우 간단하다는 것을 알게 될 것입니다. 처음 화면이 나타나면 화면을 위협하는 것이 얼마나 쉬운 지 잊을 수 있습니다. 그런데 툴바의 "A", "B"및 "C"버튼을 사용하여 유지할 비트를 결정할 수도 있습니다. –

+0

@NickRosencrantz : 병합 도구를 구성하는 방법을 조금 추가했습니다. –

19

기본은 로컬 시스템의 이전 버전입니다. 부모 1은 현재 변경 사항이며 부모 2는 서버의 파일입니다.

변경 사항을 체크인해야 할 필요가있는 경우 병합 메뉴에서 B 모든 곳을 선택하십시오. 로컬 컴퓨터에 최신 서버 버전을 사용하려면 병합 메뉴에서 C를 모두 선택하십시오.

+5

감사합니다. "기본"이 이전 버전임을 어떻게 알았습니까? 신비하고 무의미한 "base", "parent1", "parent2"words에 대해 한 시간 씩 인터넷 검색을하고있었습니다. – Slav