2016-12-22 8 views
0

git show에 기반한 자동 도구를 작성 중입니다.이 도구는 git diff 명령을 사용합니다. git show의 출력을 구문 분석 할 텍스트로 사용하는 작은 파서를 작성했으며 결과의 대부분의 경우 '@@'로 시작하는 줄은 비교할 줄을 나타냅니다.git diff : 세 개의 '@'기호가있는 많은 패치

@@@ -460,22 -415,8 +460,22 @@@ 

그게 무슨 뜻 이죠 :

그러나,이 같은 상황을 만났다? 더 미묘한 의미를 지닌 더 많은 (4 개 이상) '@'기호가있을 수 있습니까?

답변

1

결합 된 diff 형식으로 병합을 표시하고 있습니다. git show의 man-page를 보면, 사용되었을 때의 모양과 모양은 combined diff format에 대한 완전한 섹션을 가지고 있습니다. 또한 git show의 초기 설명에서 병합은 결합 된 diff 형식을 나타내는 git diff-tree --cc과 같이 표시됩니다.

그리고 예, 기호가 세 개 이상일 수 있습니다. @. 부모 당 커밋 + 1 당 하나가 있습니다. 따라서 3 명의 부모와 병합하면 (소위 octupus merge), 4 개의 사인이 있습니다. 부모님이 4 명인 경우 표지판에 5 명이 표시됩니다.

1

당신이 병합에 대한 쇼를하고있는 것처럼 보입니다.이 덩어리는 양쪽 부모와 다릅니다. 그게 설명 일 수 있니?

+0

고마워요. 출력 형식이나이 지식에 대해 배운 다른 것을 설명하는 상세한 문서를 제공해 주시겠습니까? – zsf222

+0

자세한 내용은 알고 싶습니다. 표기법에서 짐작할 수 있듯이 장난감 표식에 그 표기법이 있는지 테스트했습니다. 나는 문어 조인이있는 경우에만 나머지 주름이 생길 것으로 기대합니다. 나는 통일 된 형식이 그것으로 무엇을하는지 모른다. –

+0

내 대답을 살펴보면 명령 맨 페이지에 직접 문서화되어 있음을 알 수 있습니다. ;-) – Vampire