두 개의 텍스트 파일을 "병합"하는 방법은 무엇입니까?

두 개의 텍스트 파일을 "병합"하는 방법은 무엇입니까?

최근 Ubuntu 12.04에서 12.10으로 업그레이드했는데 어느 시점에는 apache2.conf병합 옵션이 제공되지 않아서 새 파일을 거부했고 설치 프로그램이 새 파일을 apache2.conf.dpkg-dist.

두 파일을 비교하면 diff apache2.conf apache2.conf.dpkg-dist다른 줄만 얻을 수 있습니다. 하지만 SVN이나 git에서 병합 충돌을 해결하는 방법처럼 두 가지를 수동으로 병합하고 싶습니다. 어떻게 해야 하나요?

답변1

사용vimdiff당신이 좋아한다면 vim. 그렇지 않으면,diffuse효과도 매우 좋습니다.

답변2

버전 관리에는 충돌을 해결할 때 사용할 수 있는 더 많은 정보가 있습니다. 자신의 버전과 다른 모든 사람의 버전뿐만 아니라 공통 조상도 있으므로 다음과 같은 작업을 수행할 수 있습니다.삼방향 병합. 여기서 공통 조상은 릴리스에 있는 구성 파일의 원본 버전이거나 마지막으로 변경 사항과 병합한 공식 버전입니다.

불행하게도 Ubuntu나 내가 아는 다른 주요 배포판 중 어느 것도 구성 파일이 업데이트될 때 완전히 원활한 3방향 병합을 수행하지 않습니다. 하지만, 가까이 다가갈 수 있는 곳은관리자를 기다려주세요.관리자를 기다리고 있습니다버전 제어 시스템(Bazaar, Darcs, Git, Mercurial)에서 관리되는 Debian 및 그 파생 제품에서 사용되는 패키지 관리 도구인 APT의 추가 기능 구성 요소이며 /etcFedora의 Yum을 포함한 다른 시스템으로 이식되었습니다. 나는 etckeeper를 사용하는 것을 권장합니다. 이는 또한 변경 사항을 추적하는 좋은 방법입니다 /etc.

일부 프로그램은 구성 파일을 관리합니다.UCF, 그러나 이는 사용자로서 통제할 수 없는 일입니다.

보다 일반적으로 조상과 두 가지 버전이 있는 경우 다음을 사용하여 수행할 수 있습니다.merge유틸리티가 함께 제공됩니다.RCS또는diff3 -m~에서확산제.

대화형 diff 및 merge 프로그램도 많이 있습니다. Emacs와 Vim은 모두 대부분의 소프트웨어와 마찬가지로 해당 인터페이스를 가지고 있습니다.차별화된 청중.

답변3

제가 개인적으로 가장 좋아하는 것은 kdiff3- 우분투 버전이 있는지 모르겠습니다. ~에 따르면홈페이지그냥 사용합니다qt.

이 도구를 사용하면 두 개(또는 세 개)의 파일을 새 파일로 병합할 수 있습니다. 각 차이점에 대해 한쪽을 선택하거나 충돌을 수동으로 해결하십시오.

관련 정보