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