패치 생성
외부 종속성을 수동으로 수정하여 다음을 수행할 수 있습니다:
- 종속성이 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"