2012-10-10 2 views
1

리눅스 주식 커널 (linus 트리)에서 작업하려고합니다. 하지만 내 리눅스 박스의 한계로 인해, git을 통해 트리를 가져올 수 없다. 그래서 kernel.org에서 최신 rc 후보 소스 아카이브를 다운로드하고 기본 소스를 마스터로 취급하는 자체 자식 저장소를 작성합니다. 이제 지점을 만들고 일부 소스를 수정하려고합니다. 나는 git format-patch을 통해 패치를 만들 수 있었고 그것을 제출하고 싶었습니다. 다시 인터넷 연결이 가능하지 않기 때문에 다른 컴퓨터에 패치 파일을 전송하고 git send-email 명령을 실행해야합니다. 내 질문 :
1. 올바른 방법으로하고 있습니까? 나는 패치가 생성 된 클론 소스가 아니라 내 로컬 리포지토리 (예, 기본 소스는 linus 트리와 동일 함)를 생성 함을 의미합니다.
2. 생성 된 패치에서 마지막 줄에 숫자가 표시됩니다. 예를 들어커널 소스 : 패치 제출

-
1.7.7.3
그게 아니라면 모두에 대해 그리고 내 변경 테이너의 승인을하는 경우 기본 소스에 적용에 영향을 미치지 않습니다 무엇인지?

답변

2

관리자가 메인 트리를 적용 할 것으로 예상되는 트리에 대해 패치가 정상적으로 적용되는 한, 메인 git 트리 이외의 다른 것에 대해 생성 된 패치를 보내는 것이 좋습니다. 워크 플로우에 문제가 있음을 볼 수있는 한 가지 경우는 최종 릴리스 (예 : 3.6)를 다운로드 한 다음 병합 창 (Linux가 3.6을 릴리스하고 3.7-rc1을 릴리스하는 시점) 동안 패치를 보내는 경우입니다. 병합 창에서 Linus의 트리에 많은 변경 사항이 추가되며, 패치 중 일부가 패치하는 곳을 터치하면 패치를 조정해야 할 수도 있습니다.

어쨌든 git format-patch은 초보자가 치는 많은 패치 형식 지정 문제를 피할 수 있으므로 보내주는 패치를 만드는 데있어서 탁월한 선택입니다. 또한 git send-email을 사용하여 보내면 같은 이유로 좋은 아이디어입니다. 메일 클라이언트가 공백을 엉망으로 만들거나 HTML로 변환하거나 다른 성가신 stuf를 피할 수 있습니다.

-- 
1.7.7.3 

같은

마지막 두 줄은 패치 파일을 생성 한 자식 버전을 보여줍니다. 패치가 git apply, git am, patch -p1 또는 그와 같이 적용될 때, 두 줄은 무시되고 삭제되므로 효과가 없습니다.

모든 말로, 나는 전체 git 트리를 다운로드 할 수 있도록 개발 환경을 업데이트하는 것이 좋습니다. 수년 간의 역사가 있으면 코드를 이해하는 데 매우 유용하며 트리의 최신 상태로 업데이트하는 것이 훨씬 빠르며 증분 변경 사항을 다운로드하면됩니다. 소스를 다운로드하고 패치하기위한 도구 인 ketchup도 유용합니다. 제 생각에는 git을 직접 사용하는 것만 큼 좋지는 않습니다.

패치를 제출하는 행운을 비네!

+0

자세한 답변을 작성해 주셔서 감사합니다. 그것은 내 의심을 지워줍니다 :) – Adil

관련 문제