2009-11-30 5 views
9

우리는 Subversion을 사용하며 모든 체크인 동안 스크립트는 모든 diff 파일을 포함하는 패치 파일을 만듭니다. 이제 동일한 문제/결함에 대해 여러 번의 체크인이있을 수 있으며 결국 여러 패치 파일로 끝납니다. 이제 문제에 대한 통합 된 변경 내용을 보려면 모든 패치 파일을 병합해야합니다. 그렇게 할 수있는 방법이 있습니까?여러 패치 파일을 병합하는 방법은 무엇입니까?

또 다른 방법은 동일한 문제를 해결하는 것입니다. 특정 변경 사항의 일부로 수행 된 모든 변경 사항의 결합 된 차이를 가져 오는 방법이 있습니까? 예 :

주석으로 검사

: 코멘트에 검사 "123 제 변경"
:
코멘트에 검사 "(123)의 변화의 두 번째 세트": "123 : 제 변경"..

코멘트에 접두어 123이 붙은 모든 변경 사항의 결합 된 diff를 얻을 수있는 방법이 있습니까?

답변

11

combinediffpatchutils은 diff 파일을 결합 할 수 있습니다.

(뻔뻔 this previous SO question에서 차용.)

+0

Combinediff는 첫 번째 diff가 적용된 후 두 번째 diff의 컨텍스트 행이 유효한 상태로 남아있는 경우에만 작동합니다. 따라서 두 diff가 동일한 기준선을 기준으로하고 인접 선을 만진 경우 일부 변경 사항이 거부됩니다. – user833771

+0

Connectingiff를 사용하는 방법, 창에서 사용할 수 있습니까? – ashish

+0

http://cyberelk.net/tim/data/patchutils/stable/에서 최신 버전을 다운로드하고,'./configure && make && make install'을 실행하면'combinediff patch1 patch2'를 실행할 수 있습니다. – erwaman

3

단지 첫 번째 변경 집합 전에 개정에서 시작하는 새로운 지점을 확인합니다. 새 분기에서 문제의 각 변경 집합을 순서대로 병합합니다. 새 분기의 시작과 최종 결과 사이에 차이점을 가져옵니다.

(문제 기반 분기를 수행하면 자동으로 위의 상황이 발생합니다.)

Mercurial은 패치 모음, 즉 mq 확장을 처리하기위한 멋진 확장 기능을 제공합니다. 이것은 차례로 패치를 서로 쌓을 수있는 시스템 인 이불 (http://savannah.nongnu.org/projects/quilt)을 기반으로합니다.

관련 문제