[windows] Windows에서 diff 패치를 어떻게 적용합니까?

diff 패치를 만들 수있는 많은 프로그램이 있지만 패치를 적용하는 데 많은 시간을 할애하고 있습니다. 패치를 배포하려고하는데 사용자에게 패치를 적용하는 방법에 대한 질문이 있습니다. 그래서 나는 그것을 스스로 알아 내려고 노력했지만 단서가 없다는 것을 알았습니다. 내가 찾을 수있는 대부분의 도구는 명령 줄입니다. (명령 줄을 처리 할 수 ​​있지만, 친절하고 친근한 GUI가 없으면 많은 사람들이 길을 잃을 수 있습니다.

TortoiseSVN을 사용해 보았습니다. 적용 할 패치가 있습니다. 패치를 마우스 오른쪽 버튼으로 클릭하면 TortoiseSVN 하위 메뉴 아래에 “패치 적용”이라는 옵션이 있습니다. 빈 창을 위로 올리면됩니다.

그래서 나는 Open을 쳤다. 통합 diff를 병합하고 적용하는 두 가지 옵션이 있습니다. 패치는 운 좋게 통합 된 diff 형식입니다. 그러나 apply 옵션은 작동하지 않습니다. 패치와 폴더를 요청합니다. 어떻게 든 패치를 적용 할 파일 을 요청하는 것을 잊었습니다 ! 따라서 TortoiseSVN은 평범하지 않습니다. 패치와 파일을 가져 와서 올바르게 적용 할 수있는 Windows GUI 기반 유틸리티가 있습니까?

편집 : 지금까지 답글을 보면 Tortoise가 이미 버전이 지정된 파일 인 경우 Tortoise가 올바르게 수행하는 것 같습니다. 여기서는 그렇지 않습니다. SVN 저장소에서 나오지 않은 파일에 패치를 적용 할 수 있어야합니다. SVN이 diff를 사용하고 그것들을 만들고 적용하는 방법을 알아야한다는 것을 알기 때문에 Tortoise를 사용하려고했습니다.



답변

패치 적용

TortoiseMerge로 :

  1. 기존 SVN repo 디렉토리를 찾아서 엽니 다.
  2. “merges”라는 새 디렉토리를 작성하십시오 (없는 경우).
  3. .patch 파일을 적용 할 파일을 복사하십시오.
  4. 다음 단계를 계속하기 전에 svn 저장소에 ADD 및 COMMIT
  5. 병합을 마우스 오른쪽 버튼으로 클릭 하고 패치 적용 …을 선택 하십시오.
  6. 목록에서 파일을 두 번 클릭하십시오.
  7. diff가있는 패치 된 파일이 오른쪽 창에 표시됩니다
  8. 해당 분할 창을 클릭 하고 파일-> 다른 이름으로 저장 …으로 저장 또는 내보내기를 누르 십시오 .

TortoiseMerge에서 열면 대체 스크리닝. 아래 화면에서 directory는 위의 2 단계에서 언급 한 “merges”디렉토리를 나타냅니다.
선별

WinMerge GUI의 스크린 샷 :
선별


답변

나는 그것을 위해 순수한 파이썬 도구를 만들었습니다 . 교차 플랫폼 동작을 예측할 수 있습니다. 새 파일을 작성하지는 않지만 (작성시) GUI가 없지만 그래픽 도구를 작성하는 라이브러리로 사용할 수 있습니다.

업데이트 : Python이 설치되어 있으면 사용하는 것이 더 편리합니다.

pip install patch
python -m patch


답변

TortoiseMergeTortoiseSVN 과 함께 제공되는 별도의 유틸리티입니다.

TortoiseDiff.zip 아카이브 에서 별도로 다운로드 할 수도 있습니다 . 이렇게하면 버전이 지정되지 않은 파일에 통합 된 diff를 적용 할 수 있습니다.


답변

GUI를 선호한다고 말했지만 명령 줄 도구가 훌륭하게 작동합니다. Windows 로의 유닉스 도구 포트에 대해서는 GnuWin 을 참조하십시오 . 분명히 패치 명령이 필요합니다. 😉

그래도 회선 종료에 문제가 생길 수 있습니다. GnuWin 포트는 패치 파일에 DOS 스타일 라인 종료 (CR / LF)가 있다고 가정합니다. 합리적으로 똑똑한 편집기에서 패치 파일을 열어보십시오.


답변

TortoiseSVN에서는 패치 적용이 작동합니다. 패치는에서 작성된 디렉토리와 동일한 디렉토리에 적용해야합니다 . 이것을 명심하는 것이 항상 중요합니다. TortoiseSVN에서 수행하는 방법은 다음과 같습니다.

패치를 적용 할 폴더를 마우스 오른쪽 버튼으로 클릭하십시오. 패치 파일의 위치를 ​​묻는 대화 상자가 나타납니다. 파일을 선택하면 변경된 파일이 나열된 작은 파일 목록 창이 열리고 각 항목을 클릭하면 해당 파일에 대한 패치 작업을 나타내는 diff 창이 열립니다.

행운을 빕니다.


답변

Git 설치의 patch.exe 유틸리티는 Windows 10에서 작동합니다.

Windows 용 Git을 설치 한 다음 "C:\Program Files\Git\usr\bin\patch.exe"명령을 사용하여 패치를 적용하십시오.

Hunk #1 FAILED at 1 (different line endings).패치를 적용하는 동안 출력 과 같은 오류 메시지 가 출력 된 경우 명령 줄에 ( -l바로 가기 --ignore-whitespace) 또는 --binary스위치를 추가하십시오.


답변

패치 유틸리티 의이 Win32 기본 포트를 사용할 수 있습니다 .

그것은 다른 유틸리티의 더 큰 선택과 함께 제공되며 Cygwin과 유사하지만 DLL이나 유사한 것이 필요하지 않습니다. 원하는 작은 실행 파일을 골라 원하는 곳에 저장하십시오.

간단한 사용법 :

patch.exe -i <patchfile>

추가 도움을 받으십시오.

patch.exe --help