패치 생성

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

  • 해당 종속성이 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"