패치 생성
외부 종속성을 수동으로 수정하여 다음을 수행할 수 있습니다:
- 종속성이 Omnibus 임베디드 패키징과 함께 작동하도록 합니다.
- 상류 유지자가 수정하지 않은 문제를 해결합니다.
부트스트랩 패치 파일
Omnibus에는 빌드 프로세스의 일환으로 자동으로 패치를 적용하고 사용하는 특정 DSL과 관례가 있습니다.
패치 파일을 적용하려면 변경 사항을 포함하는 .patch
파일을 특정 디렉터리 구조에 저장하고 patch
DSL 메서드를 사용하세요:
config/patches/<software-name>
예를 들어, gitlab-rails
실행 중에 적용되는 패치를 위해 .patch
파일을 다음 위치에 저장하세요:
config/patches/gitlab-rails
패치 생성
패치 파일을 생성하려면 다음을 사용할 수 있습니다:
-
diff
명령을 사용하여 원본 파일과 수정된 파일을 비교합니다. - Git을 사용하여 하나 이상의 커밋을 기반으로한 패치를 출력합니다.
diff
를 사용하여 패치 생성
diff
명령을 사용하여 패치 파일을 생성하려면:
- 수정 중인 파일을 복제하고 새 파일에 새 이름을 지정합니다.
- 원본 파일을 변경합니다.
diff -Naur <original_file> <new_file> > <patch_filename>.patch
Git을 사용하여 패치 생성
두 Git 커밋 간의 패치 파일을 생성하려면 git diff
명령을 사용합니다. 두 커밋 ID를 알아야 합니다.
git diff <commitid1> <commitid2> > <patch_filename>.patch
또는 하나의 Git 커밋과 기본 HEAD를 기반으로한 패치 파일을 생성할 수 있습니다.
git diff <commitid1> > <patch_filename>.patch
패치 사용
하나 이상의 파일에 패치를 적용하려면:
- 원본 파일을 다운로드하거나 번들 설치하거나 유사한 방법을 사용하여 원본 파일을 가져옵니다.
-
각 원본 파일에 다음 라인을 추가하세요:
patch source: '<patch_filename>.patch', target: "#{<install_directory>}/embedded/<target_file>.txt"