패치에 새 파일을 포함시키는 방법


9

여기에 소개 된대로 패치를 만들려고합니다 .
나는 두 개의 디렉토리가 있다고 가정 pp1(modified version)하고 pp0(clean version)내가 패치 파일 만들기, pp0.patchdiff명령을 :

 diff -crB pp0 pp1 > pp0.patch

문제는 pp1에만 파일이 있으면 패치에 포함되지 않습니다. 해결 방법?

업데이트 :
먼저 pp0 디렉토리로 변경하고 패치가 성공할지 테스트합니다.

  patch --dry-run -p1 -i /path-to-pp0.patch

내가 추가 한하지만 --new-file받는 diff명령, 이들 만의 pp1결과에 나열되지 않은

업데이트 :
실수로 잘못된 파일을 패치 했으므로

  diff -crb --new-file pp1 pp0 > pp0.patch

또는

  diff -crNb pp1 pp0 > pp0.patch

할 것이다

답변:


9

--new-file스위치를 사용하여이 작업을 수행 할 수 있어야합니다 . diff 맨 페이지 에서 가져온 :

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

이 시도:

diff -crB --new-file pp0 pp1 > pp0.patch

나는 그것을 제대로 패치했지만 새 파일이 포함되어 있는지 여부를 모른다
manuzhang

내 사과, 작동합니다
manuzhang

3

즉각적인 대답은 : diff -N같은 pootzko에 의해 설명 . 에 의해 많은 패치가 만들어 짐을 알 수 있습니다 diff -urN.

삶을 개선 할 수있는 것 : 버전 관리 도구를 사용하십시오. 모르는 경우 Bazaar , Git 또는 Mercurial 의 세 가지 주요 분산 개정 제어 시스템 중 하나로 시작하십시오 . 클린 버전을 확인하고, 작업하고, 원하는만큼 작업을 체크인하고, 버전 관리 시스템에 클린 버전과 작업간에 차이가 있는지 물어보십시오.


실수 :) 할 때 들으, 나는 현실에서 하나를 가지고 과거로 되돌아 수 있으면 좋겠다
manuzhang
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.