개발자 도구 · 텍스트 비교
통합 차이점을 읽는 방법: 덩어리 헤더, 컨텍스트 줄 및 +/- 마커
· 배경
텍스트 비교 패치 개발자 워크플로
파일 헤더 및 @@ 덩어리 범위부터 컨텍스트 줄 및 변경 마커까지 통합 diff 형식을 한 줄씩 디코딩하므로 모든 도구의 패치가 적합합니다.
플러스, 마이너스 및 @@ 기호로 구성된 벽 — 이메일이나 끌어오기 요청에서 패치를 처음 접할 때 열립니다.
다운로드된 `changes.patch`은 익숙한 diff 출력과 유사한 구두점으로 시작하지만 정확한 구조가 중요합니다. ToolAcre는 두 개의 레이블을 작성한 다음 한 문자 마커를 사용하여 모든 비교 행을 작성합니다. 존재하는 것을 읽는 것이 다른 패치 형식의 필드를 정신적으로 제공하는 것보다 안전합니다.
일반 텍스트 편집기에서 파일을 엽니다. 처음 두 줄은 UI에서 제공하는 왼쪽 및 오른쪽 레이블을 `original` 및 `changed`로 식별합니다. 후속 라인은 컨텍스트, 제거 및 추가 표시를 통해 비교된 텍스트를 재구성합니다.
파일 헤더 라인 — --- 및 +++ 라인, 경로, a/ 및 b/ 접두사 도구 추가에 대해 설명합니다.
헤더는 `--- original` 뒤에 `+++ changed`이 옵니다. 다른 도구에서는 이러한 접두사가 더 풍부한 패치 문법 내에 있을 수 있지만 이 내보내기는 타임스탬프, 경로 또는 메타데이터를 추가하지 않습니다. 레이블은 디스크에 존재하는 것으로 입증된 파일이 아닌 측면을 설명합니다.
Text diff는 파일 객체가 아닌 붙여넣은 문자열을 허용하기 때문에 이러한 구별이 중요합니다. 다운로드는 비교 후 로컬 텍스트 보고서를 생성합니다. 레이블을 저장소 경로 또는 개정 식별자로 취급하면 UI가 수집한 적이 없는 출처로 간주됩니다.
덩어리 헤더 설명 — @@ -12,7 +12,8 @@을 시작 라인 및 각 측면의 라인 수로 디코딩합니다.
`toUnifiedText`에는 `@@`으로 시작하는 줄이 없습니다. 이 함수는 두 레이블 뒤의 모든 행에 직접 매핑됩니다. 결과적으로 이 출력에는 디코딩할 덩어리 범위가 없으며 다운로드한 텍스트에 포함된 start-line/count 쌍도 없습니다.
행 번호는 렌더링된 브라우저 보기에서 계속 사용할 수 있으며, 행의 왼쪽 및 오른쪽 위치는 표시됩니다. 내보내기에서는 더 간단한 표현을 선택합니다. 다운스트림 프로그램에 완전한 표준 통합 덩어리가 필요한 경우 `.patch` 확장이 누락된 구문을 제공한다고 가정하기보다는 호환성을 확인하십시오.
ToolAcre는 @@ 덩어리 헤더를 생성하지 않으므로 디코딩할 헤더가 없습니다.
선행 공백은 변경되지 않은 행을 표시하고 마이너스는 왼쪽 제거를 표시하며 플러스는 오른쪽 추가를 표시합니다. UI는 긴 동일 실행을 시각적으로 축소할 수 있지만 `lastDiff`는 전체 결과를 유지하고 다운로드는 모든 행을 직렬화합니다. 건너뛰기 마커가 패치 문자열에 입력되지 않습니다.
개요에는 세 가지 컨텍스트 줄이 기본값으로 언급되어 있습니다. 3은 내보내기가 아닌 시각적 축소 호출에 사용됩니다. 이러한 경로를 결합하면 다운로드한 콘텐츠가 과소평가될 수 있습니다. 프리젠테이션과 직렬화는 행을 공유하지만 다른 변환을 적용합니다.
다운로드는 모든 행을 표시하고 3줄 컨텍스트 기본값을 사용하지 않습니다.
왼쪽 비교 `a b` with right `a c`. The exported lines are the two labels, then space-a, minus-b and plus-c. Reading top to bottom says that `a` survives, `b` leaves the original and `c`는 변경된 쪽을 입력합니다.
따라서 수정은 정렬이 함께 배치될 때 인접 제거 및 추가로 표시됩니다. 형식에는 "수정됨"이라는 이름이 지정되지 않습니다. 반복되는 줄이 다른 정렬을 허용하는 경우 각 입력 행을 고려하면서 순서가 다르게 보일 수 있습니다.
작업 예: ToolAcre가 실제로 내보내는 전체 패치 모양 스트림을 읽습니다.
일반, 컨텍스트 및 완전한 통합 diff 형식에는 고유한 사양과 기록이 있지만 여기에 사용된 소스 세트에 의해 구현되거나 문서화되지 않았습니다. 이 기사에서는 한 형식이 인기를 얻었거나 ToolAcre가 목록 필드를 내보내지 않는 이유를 주장하지 않습니다.
다른 도구에서 패치를 적용해야 하는 경우 버전 제어 명령을 사용합니다. ToolAcre의 다운로드는 휴대용 검토 아티팩트로 유용하지만 저장소에는 임의의 패치 소비자를 통해 왕복할 수 있음을 증명하는 패치 파서나 적용 기능이 포함되어 있지 않습니다.
완전한 통합, 컨텍스트 및 일반 형식 비교에는 외부 소스가 필요합니다.
바이너리 패치, 헤더 이름 변경, 모드 변경 및 애플리케이션은 이 경로 외부에 있습니다. 텍스트에는 개체 식별자나 공통 조상이 포함되어 있지 않습니다. 마커가 친숙해 보이기 때문에 저장소 작업을 나타낼 수 없습니다.
내보내기에는 활성 비교 옵션도 반영됩니다. 대소문자 또는 공백 정규화 이후 동일하다고 간주되는 행은 원본 왼쪽 텍스트만 전달하므로 패치 모양의 문서는 느슨한 일치 하에서 두 입력을 바이트 단위로 재구성하지 않습니다.
요점: diff는 압축된 이야기입니다. 읽기 순서를 요약하고 ToolAcre의 텍스트 비교가 빠른 검토를 위해 강조 표시된 줄과 동일한 종류의 변경 사항을 표시하는 방법을 설명합니다.
두 개의 레이블을 먼저 읽은 다음 접두사가 붙은 모든 행을 순서대로 해석합니다. 렌더링된 줄 번호가 필요한 경우 브라우저 보기로 돌아가세요. 표준에 맞는 덩어리가 필요한 경우 해당 계약을 문서화하는 도구를 사용하여 생성하십시오.
ToolAcre는 모든 패치 기능을 구현한다고 주장하지 않고 페이지 외부에서 비교할 수 있는 간단한 방법을 제공합니다. 더 좁은 이름인 패치 형태의 출력은 정확한 기능에 대한 기대치를 유지하고 애플리케이션 호환성에 대한 잘못된 약속을 방지합니다.