2010-12-16 5 views
2

git diff에 문제가 있습니다. 먼저 역사에 대해 알려주십시오.파일의 패턴을 무시하는 git diff

저는 고객으로부터 오히려 인기가없는 프로젝트를 방금 받았습니다. 문제는 scm에 2 개의 분기가 있다는 것입니다. 이 두 지점은 여러 세대에 걸쳐 병합되지 않았으므로 이제 병합해야합니다. 변경 사항의 대부분은 사소한 것이므로 git를 통해 병합하는 데는 약 30 분 밖에 걸리지 않습니다.

내 고객은 병합 프로세스를 자동화 할 수 있다고 믿지 않습니다. 따라서 그들은 4 가지 버전의 코드 (기본 및 버전 a, 기본 및 버전 b, a 및 b 등) 간의 차이점이있는 diff 목록을 사용하여 병합을 검토하려고합니다.

이것은 또한 아주 사소한 것이지만 여기에 문제가 있습니다. 분기 간에도 많은 변경 사항이 있기 때문에 diff 목록은 매우 길기 때문에 (약 50MB마다) 목록이 쓸모가 없습니다. 이제 고객이 변경 사항을 그룹화하려고합니다.

'그룹화 된 차이'에는 4 개의 주요 그룹이 있습니다. git diff가 개별 그룹을 무시할 수있게 만들고 싶습니다.

g1 : 방향이 바뀐 슬래시가 많이 있습니다. 그러므로 git는 /와 \를 비슷하게 해석하고 싶습니다. git이 슬래시를 포함하는 경우 전체 행을 무시하는 방법을 찾았지만 경로 (슬래시가 오는 위치)가 변경되었을 수 있기 때문에 원하는 경로가 아니라는 것을 알았습니다.

g2 :이 문제는 더 많은 심볼이 포함 된 것을 제외하고는 위의 구조와 매우 비슷합니다. 변경된 로깅에는 많은 형식이 있습니다. 주로 'æ'가 '& aelig;'로 변경되고 'ø'이 '& oslash;'로 변경된 덴마크어 문자와 관련이 있습니다.

g3 : 많은 댓글이 변경되었습니다. 고객은 일부 '* /'가 병합되지 않았을 수도 있습니다. 나는 그것을 확인하는 방법을 볼 수 없습니다. 여러분 중 전문가가 아이디어를 가지고 있습니까?

g4 : 위에 언급되지 않은 모든 것. 이것은 실제 변화로 간주됩니다.

+0

_only_30 ** 분 **?!? 그건 사소한 합병을위한 정신없는 양이다. – knittl

+0

나는 그것의 대부분 *은 사소한 것이라고 말했다. 약간의 갈등이 있었지만주의가 필요했습니다.) – user1407209

답변

0

diff를 구문 분석하고 이러한 변경 사항 중 일부를 삭제하거나 소비 할 수있는 것을 쓸 수 있습니다. 일부 정규식 마술이 도움이 될 수 있습니다. 나는 이것을 g1과 g2에 가장 적용 가능한 것으로 본다.

g3에 대해 어떻게해야할지 잘 모름.

+0

나는 사후 처리를 피하려고했습니다. 필자는 비교를 넘어서서 사용 했었지만, 비교 규칙을 설정하는 옵션이있었습니다. 나는 로그 파일에서 타임 스탬프를 무시하기 위해 그것을 사용했다. diff에서 비슷한 점이 있기를 바랬습니다. g3에 대해 동의합니다. 고객이 파일을 검토 할 때를 제외하고는 아무 것도 할 생각이 없습니다. :) – user1407209

관련 문제