패치 생성
외부 의존성을 매뉴얼으로 수정하여 다음을 수행할 수 있습니다.
- 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 diff
명령을 사용하여 두 Git 커밋 사이의 패치 파일을 만듭니다.
두 커밋 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"