xdiff
xdiff (파일/문자열 차이와 패치)
파일의 여러 리비전 사이의 차이(diff)를 담은 패치 파일을 만들고 적용하는 확장이에요. 소스 코드 버전 관리처럼 텍스트의 변경 이력을 생성·병합할 때 씁니다.
본문
xdiff 확장을 사용하면 파일의 서로 다른 리비전 사이의 차이를 담은 패치 파일을 만들고 적용할 수 있어요.
이 확장은 문자열(string) 과 파일(file) 두 가지 모드로 동작하며, unified와 binary 두 가지 패치 형식을 지원합니다.
- unified 패치 — 텍스트 파일에 매우 적합해요. 사람이 읽을 수 있고 리뷰하기 쉬우니까요.
- binary 패치 — 아카이브나 이미지 같은 이진 파일에 적합해요. 바이너리 세이프(binary safe)하고 인쇄할 수 없는 문자도 잘 처리하죠.
버전 1.5.0부터는 이진 패치를 생성하는 두 가지 새로운 함수 집합이 추가됐어요. xdiff_string_rabdiff()와 xdiff_file_rabdiff()는 기존 함수와 호환되는 출력을 생성하면서도 대개 더 빠르고, 결과 크기도 더 작습니다. 이진 패치 생성 방식과 그 차이에 대한 자세한 내용은 libxdiff 웹사이트를 참고하세요.
이 확장은 위 함수들을 구현하기 위해 libxdiff 라이브러리를 사용합니다.
xdiff 파일 함수
| 함수 | 설명 |
|---|---|
xdiff_file_bdiff |
두 파일의 이진 diff 생성 |
xdiff_file_bdiff_size |
이진 diff를 적용해 만든 파일의 크기 읽기 |
xdiff_file_bpatch |
이진 diff로 파일 패치 |
xdiff_file_diff |
두 파일의 unified diff 생성 |
xdiff_file_diff_binary |
xdiff_file_bdiff의 별칭 |
xdiff_file_merge3 |
파일 3개를 하나로 병합 |
xdiff_file_patch |
unified diff로 파일 패치 |
xdiff_file_patch_binary |
xdiff_file_bpatch의 별칭 |
xdiff_file_rabdiff |
Rabin 폴리노미얼 핑거프린팅 알고리즘으로 두 파일의 이진 diff 생성 |
xdiff 문자열 함수
| 함수 | 설명 |
|---|---|
xdiff_string_bdiff |
두 문자열의 이진 diff 생성 |
xdiff_string_bdiff_size |
이진 diff를 적용해 만든 파일의 크기 읽기 |
xdiff_string_bpatch |
이진 diff로 문자열 패치 |
xdiff_string_diff |
두 문자열의 unified diff 생성 |
xdiff_string_diff_binary |
xdiff_string_bdiff의 별칭 |
xdiff_string_merge3 |
문자열 3개를 하나로 병합 |
xdiff_string_patch |
unified diff로 문자열 패치 |
xdiff_string_patch_binary |
xdiff_string_bpatch의 별칭 |
xdiff_string_rabdiff |
Rabin 폴리노미얼 핑거프린팅 알고리즘으로 두 문자열의 이진 diff 생성 |
텍스트 변경 이력은 xdiff_file_diff()로 unified 패치를 만들어 사람이 검토하게 두고, 이미지·압축파일 같은 이진 파일은 xdiff_file_bdiff() 계열을 쓰는 것을 권장해요.