diff, patch 파일 사용법

이걸 몰라서, 하나 하나 손으로 고쳤었다. 이건 마치 엑셀 앞에서 계산기 두드리는 행동과 다를 바가 없다.

뭐.. 몰랐으니.

nixCraft 의 도움을 빌렸다.

자세한 사항은 위 글을 참고하고, 아주 간단하게 하나만 정리한다.


파일 하나에 대해서 .patch 가 있을 땐 그냥 간단하게 하면 된다.

patch < new.patch

이러면 알아서 원본 파일에 대해 패치작업이 이뤄진다.

이게 아니고, 디렉토리 트리가 있는 상황이라면? 다시 말해, 한 디렉토리 아래 여러 디렉토리/파일이 있고, 여기 저기서 수정이 이뤄졌으며, 그 결과가 project1.patch 라고 한다면?

일단 이 project1.patch 를 파일이 있는 디렉토리의 최상단에 놓고, 다음과 같이 명령을 내린다.

patch -p1 < project1.patch

사실, patch 프로그램을 거의 써 본적이 없어서, 그냥 이렇게 하니 되더라 정도밖엔 아는게 없다.
그래도, man page 를 보니 -p1 이 뜻하는 바는 대충 알 수 있었다.

-p0 를 쓰면 절대경로로 인식되는 듯 하고, -p1 을 쓰면 현재 디렉토리 이하를 디렉토리 트리로 가정하여(간단하게 상대 경로) 작업하라는 뜻이 된다. (표현을 제대로 한건지 모르겠네.)

아무튼 이것도 경험이 더 늘면 지식이 쌓이겠지. 그 때까진 이렇게 장님 문고리 잡는 수 밖에.

안녕하세요. 글 남겨주셔서 고맙습니다.