패치 생성

외부 종속성을 수동으로 수정하여 다음을 수행할 수 있습니다:

  • 종속성이 Omnibus 임베디드 패키징과 함께 작동하도록 합니다.
  • 상류 유지자가 수정하지 않은 문제를 해결합니다.

부트스트랩 패치 파일

Omnibus에는 빌드 프로세스의 일환으로 자동으로 패치를 적용하고 사용하는 특정 DSL과 관례가 있습니다.

패치 파일을 적용하려면 변경 사항을 포함하는 .patch 파일을 특정 디렉터리 구조에 저장하고 patch DSL 메서드를 사용하세요:

config/patches/<software-name>

예를 들어, gitlab-rails 실행 중에 적용되는 패치를 위해 .patch 파일을 다음 위치에 저장하세요:

config/patches/gitlab-rails

패치 생성

패치 파일을 생성하려면 다음을 사용할 수 있습니다:

  • diff 명령을 사용하여 원본 파일과 수정된 파일을 비교합니다.
  • Git을 사용하여 하나 이상의 커밋을 기반으로한 패치를 출력합니다.

diff를 사용하여 패치 생성

diff 명령을 사용하여 패치 파일을 생성하려면:

  1. 수정 중인 파일을 복제하고 새 파일에 새 이름을 지정합니다.
  2. 원본 파일을 변경합니다.
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

패치 사용

하나 이상의 파일에 패치를 적용하려면:

  1. 원본 파일을 다운로드하거나 번들 설치하거나 유사한 방법을 사용하여 원본 파일을 가져옵니다.
  2. 각 원본 파일에 다음 라인을 추가하세요:

    patch source: '<patch_filename>.patch', target: "#{<install_directory>}/embedded/<target_file>.txt"