diff 출력에서 ​​"@@" 행의 숫자는 무엇을 의미합니까? [복사]

diff 출력에서 ​​"@@" 행의 숫자는 무엇을 의미합니까? [복사]

diff다음은 Loeliger, 2ed의 Git을 사용한 Version Control의 Unix 셸 프로그램 예입니다 .

여기에 이미지 설명을 입력하세요.

차이점을 자세히 살펴보겠습니다.

헤더에서 원본 파일은 - - -로 표시되고 새 파일은 +++로 표시됩니다.

@@ 줄은 두 파일 버전 모두에 대한 줄 번호 컨텍스트를 제공합니다.

"@@" 줄의 숫자는 무엇을 의미하나요?

답변1

patch이는 (또는 유사한) 프로그램이 통합된 차이점을 해독하는 데 도움이 되는 이전/새 파일의 줄 번호입니다 .

  • 쉼표 뒤의 숫자는 블록의 길이(이전 파일 또는 새 파일)이며,
  • 쉼표 앞의 숫자는 블록이 시작되는 줄 번호입니다.
  • +및 기호는 -각각 행 추가 및 삭제를 나타냅니다.

귀하의 예에서 라인

@@ -1,4 +1,5 @@

유추에 사용되는 -앰퍼샌드 기호로 앰퍼샌드 기호 사용+<>정상적인 차이왼쪽/오른쪽 파일 출력. 두 형식 모두 차이의 선을 교차하려고 시도합니다. (컨텍스트 차이는 인터리브되지 않은 앞 블록과 뒷 블록을 나타냅니다.)

통합 diff는 프로그램의 특수 형식입니다 diff. 널리 지원되는 다른 형식은 다음과 같습니다.차동 출력 형식부분.

추가 자료:

답변2

이것GNU diff문서이에 대해서는 관련 섹션에서 설명합니다.통합 형식:

다음은 하나 이상의 차이점입니다. 각 블록은 서로 다른 파일 영역을 보여줍니다. 균일하게 잘 생긴 남자는 다음과 같습니다.

 @@ from-file-line-numbers to-file-line-numbers @@
  line-from-either-file
  line-from-either-file...

블록에 라인이 하나만 포함되어 있으면 시작 라인 번호만 표시됩니다. 그렇지 않으면 줄 번호가 "start, count"와 같습니다. 빈 블록은 블록 뒤의 줄부터 시작하는 것으로 간주됩니다.

블록과 해당 컨텍스트에 두 개 이상의 행이 포함된 경우 해당 행 번호는 "start,count"와 같습니다. 그렇지 않으면 끝 줄 번호만 표시됩니다. 빈 블록은 블록 앞 줄에서 끝나는 것으로 간주됩니다.

두 파일에 공통되는 줄은 공백 문자로 시작됩니다. 두 파일 간에 실제로 다른 줄은 왼쪽 인쇄 열에 다음 표시 중 하나가 있습니다.

‘+’
   A line was added here to the first file. 
‘-’
   A line was removed here from the first file.

관련 정보