'패치 제출'을 참조 할 때 패치라는 단어는 정확히 무엇을 의미합니까?

StackOverflow https://stackoverflow.com/questions/184272

문제

'패치 제출'을 참조 할 때 패치라는 단어는 정확히 무엇을 의미합니까?

나는 이것이 특히 오픈 소스 세계에서 많이 사용되는 것을 보았다. 그것은 무엇을 의미하며 패치를 제출하는 데 정확히 무엇을 의미합니까?

도움이 되었습니까?

해결책

변경된 코드 파일의 차이점 목록이있는 파일입니다. 일반적으로 diff -u 두 파일에서. 대부분의 버전 제어 시스템은 패치를 쉽게 생성 할 수 있지만 일반적으로 동일한 형식입니다.

이를 통해 코드 변경을 다른 사람의 소스 코드 사본에 쉽게 적용 할 수 있습니다. 반점 명령.

예를 들어:

다음 코드가 있다고 가정 해 봅시다.

<?php
  $foo = 0;
?>

그리고 나는 이것을 이것으로 바꿉니다.

<?php
  $bar = 0;
?>

패치 파일은 다음과 같습니다.

Index: test.php
===================================================================
--- test.php    (revision 40)
+++ test.php    (working copy)
@@ -3,7 +3,7 @@
         <?php
-            $foo = 0;
+            $bar= 0;
         ?>

다른 팁

Red Hat의 개발자 인 Richard Jones는 멋진 작은 프라이머 패치 제작 및 제출을 다루는 오픈 소스 프로젝트에 코드를 제출합니다.

패치는 일반적으로 정보를 변경하는 방법을 포함하는 파일입니다 (버그를 수정하는 경우가 많지만 향상된 것도 될 수 있음). 다른 종류의 패치가 있습니다.

소스 코드 패치에는 하나 또는 다중 소스 코드 파일을 수정 해야하는 방법이 포함되어 있습니다. 당신은 그것을 사용하여 쉽게 생성 할 수 있습니다 차이 명령하면 사용을 사용하여 적용 할 수 있습니다 반점 명령 (Linux/Unix Systems 에서이 명령은 표준입니다).

그러나 이진 패치도 있습니다. 이진 패치에는 이진 내의 특정 바이트가 어떻게 변경되어야하는지 정보가 포함되어 있습니다. 이진 패치는 물론 OpenSource 세계에서는 드물지만 컴퓨터의 초기에는 배송 된 바이너리 (보통 버그 주변에서 작동)를 수정하는 것이 많이 보였습니다.

패치를 제출한다는 것은 로컬로 수정 된 것을 의미하고 이제 파일을 누군가에게 보낼 수 있으므로이 패치를 그의 로컬 사본이나 웹의 공개 사본에 적용 할 수 있으므로 다른 사용자는 수정의 혜택을 누릴 수 있습니다.

특정 플랫폼에서 거의 컴파일하는 소스 코드가있는 경우 패치가 종종 사용되지만 실제로 컴파일하려면 약간의 변경이 필요합니다. 물론 소스를 가져 와서 수정하고 다운로드를위한 수정 된 코드를 제공 할 수 있습니다. 그러나 원래 소스가 다시 변경되면 (예 : 버그가 고정되거나 작은 개선 사항이 추가되면) 어떨까요? 그런 다음 소스를 다시 다운로드하고 변경 사항을 다시 적용하고 새 수정 된 버전을 제공해야했습니다. 수정 된 소스를 최신 상태로 유지하는 것은 많은 일입니다. 수정하는 대신 a를 만듭니다 차이 원본과 수정 된 사본 사이에 서버에 저장하십시오. 이제 사용자가 소스에서 앱을 다운로드하여 컴파일하려면 먼저 원래 소스의 최신 및 위대한 버전을 다운로드 한 다음 패치를 적용하고 (따라서 컴파일됩니다) 변경하지 않고 항상 최신 버전을 가지고 있습니다. 패치. 패치가 수정하는 장소 중 하나에서 원래 소스가 정확히 변경된 경우에만 문제가 발생합니다. 이 경우 시스템은 패치 적용을 거부하고 새로운 패치를 만들어야합니다.

패치는 관리자의 소스 트리를 자신의 것으로 바꾸는 데 필요한 모든 정보가 포함 된 파일입니다. 일반적으로 도구와 같은 도구에 의해 만들어집니다 diff 또는 svn diff 또는 git format-patch.

전통적으로, 오픈 소스 프로젝트는 패치 형태의 일반 슐럽의 제출물을 받아 들여 다른 사람들이 자신의 리포지토리에 액세스 할 필요가 없습니다.

.patch 파일 형태의 패치는 두 개의 코드 파일 세트 간의 차이를 전송하기위한 공통 플랫 파일 형식입니다. 따라서 오픈 소스 프로젝트를 진행하고 파일을 코드 변경하고 프로젝트 소유자에게 체크인 할 수 있도록 제출하려면 (일반적으로 체크인 권한이 없기 때문에) 패치를 통해 그렇게 할 것입니다. .

Winmerge에는 TortoisesVN과 같은 다른 많은 도구와 마찬가지로이 기능이 내장되어 있습니다.

패치 파일은 수정 한 기존 소스와 소스의 차이를 나타냅니다. 많은 프로젝트에서 기능을 추가하거나 버그를 고정하는 주요 수단입니다.

diff 명령을 사용하여 패치를 만듭니다 (예 : 예 :).

그런 다음이 패치를 개발 메일 링리스트에 제출할 수 있으며 잘 수신 된 경우 커밋터는 패치를 적용하고 (따라서 변경 사항을 자동으로 적용) 코드를 커밋합니다.

패치는 패치 명령을 사용하여 적용됩니다.

일반적으로 기능에 대한 집계 변경 사항이있는 통합 Diff 파일을 제출하는 것을 의미합니다. 당신은 할 수 있습니다 Wikipedia의 패치에 대해 자세히 알아보십시오. 여러 버전 제어 시스템 (SVN, GIT 등)은 변경 세트를 기반으로 패치 파일을 만듭니다.

 1. n. A temporary addition to a piece of code, usually as a quick-and-dirty

기존 버그 또는 잘못된 지식에 대한 치료. 패치는 작동하거나 작동하지 않을 수 있으며, 결국 프로그램에 영구적으로 통합 될 수도 있고 그렇지 않을 수도 있습니다. 패치는 프로그램의 나머지 부분보다 더 원시적 수단에 의해 생성된다는 사실에 의해 차이 또는 모드와 구별됩니다. 전형적인 예제는 전면 패널 스위치를 사용하여 수정 된 지침이며, 원래 HLL로 작성된 프로그램의 이진 실행 파일로 직접 변경되었습니다. 한 줄 수정을 비교하십시오.

전문 용어 파일의 전체 정의를 참조하십시오 여기

패치는 시스템 바이너리 업데이트 행위에도 사용됩니다. Microsoft는 항상 패치를 보내지 만 소스 코드는 아닙니다. 개선 된 바이너리를 설치하는 .MSP 파일입니다. 모든 컴퓨터 과학 용어와 마찬가지로 패치가 과부하됩니다.

나는 항상이 용어가 당신의 홀 같은 청바지를 입는 데 사용되는 무릎 패치 엄마와 같은 버그 수정을 의미한다고 믿었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top