Что именно означает слово «патч» при упоминании «отправки патча»? - PullRequest
10 голосов
/ 08 октября 2008

Что именно означает слово «патч» применительно к «представлению патча»?

Я видел, что это часто используется, особенно в мире открытого кода. Что это значит и что конкретно подразумевается при отправке патча?

Ответы [ 10 ]

18 голосов
/ 08 октября 2008

Это файл со списком различий между файлами кода, которые изменились. Обычно это формат, сгенерированный с помощью diff -u для двух файлов. Большинство систем контроля версий позволяют легко создавать патчи, но обычно они имеют тот же формат.

Это позволяет легко применить изменение кода к чужой копии исходного кода с помощью команды patch .

Например:

Допустим, у меня есть следующий код:

<?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;
         ?>
6 голосов
/ 08 октября 2008

Ричард Джонс, разработчик из Red Hat, имеет хороший маленький учебник по отправке кода в проекты с открытым исходным кодом, который охватывает создание и отправку исправлений.

4 голосов
/ 08 октября 2008

Патч - это, как правило, файл, содержащий информацию о том, как что-то изменить (очень часто для исправления ошибки, но также может быть улучшением). Существуют различные виды патчей.

Патч исходного кода содержит информацию о том, как необходимо изменить один или несколько файлов исходного кода. Вы можете легко сгенерировать их с помощью команды diff и применить их с помощью команды patch (в системах Linux / UNIX эти команды являются стандартными).

Однако есть и двоичные патчи. Двоичный патч содержит информацию о том, как необходимо изменить определенные байты в двоичном файле. Двоичные исправления, конечно, редки в мире OpenSource, но в первые дни компьютеров я видел их много, чтобы модифицировать поставляемые двоичные файлы (обычно для устранения ошибки).

Отправка исправления означает, что вы что-то локально исправили, и теперь вы отправляете файл кому-то, чтобы он мог применить это исправление к своей локальной копии или к общедоступной копии в Интернете, чтобы другие пользователи могли воспользоваться исправлением.

Патчи также часто используются, если у вас есть некоторый исходный код, который почти компилируется на определенной платформе, но для его компиляции необходимы небольшие изменения. Конечно, вы можете взять исходный код, изменить его и предложить модифицированный код для загрузки. Но что, если исходный источник снова изменится (например, исправятся ошибки или будут добавлены небольшие улучшения)? Затем вам пришлось повторно загрузить исходный код, применить изменения снова и предложить новую модифицированную версию. Это большая работа, чтобы поддерживать ваш модифицированный источник в актуальном состоянии. Вместо изменения вы создаете diff между оригиналом и измененной копией и сохраняете его на своем сервере. Если теперь пользователь хочет загрузить и скомпилировать приложение из исходного кода, он может сначала загрузить самую последнюю и лучшую версию исходного кода, затем применить ваш патч (чтобы он скомпилировался) и всегда имеет самую последнюю версию, без необходимости изменять патч. Проблема возникнет только в том случае, если исходный источник был изменен точно в одном из мест, где изменяется ваш патч. В этом случае система откажется применить исправление, и необходимо будет сделать новое исправление.

1 голос
/ 17 июня 2010

Патч также используется при обновлении двоичных файлов системы. Microsoft все время рассылает исправления, но они не являются исходным кодом. Это MSP-файлы, которые устанавливают улучшенные двоичные файлы. Как и во всех терминах информатики, патч перегружен.

1 голос
/ 08 октября 2008
 1. n. A temporary addition to a piece of code, usually as a quick-and-dirty

исправление существующей ошибки или ошибки. Патч может или не может работать, и может или не может в конечном итоге будут включены постоянно в программу. Отличается от различий или мод тем, что патч генерируется более примитивными средствами, чем остальные программы; классические примеры - это инструкции, модифицированные с использованием передней переключатели панели и изменения, вносимые непосредственно в двоичный исполняемый файл программы Первоначально написано в HLL. Сравните однострочное исправление.

См. Полное определение в файле жаргона здесь

1 голос
/ 08 октября 2008

Обычно это подразумевает отправку унифицированного файла diff с совокупным набором изменений для объекта. Вы можете узнать больше о патчах в Википедии . Несколько систем контроля версий (svn, git и т. Д.) Создадут для вас файл патча на основе набора изменений.

1 голос
/ 08 октября 2008

Файл патча представляет собой разницу между существующим источником и источником, который вы изменили. Это основной способ добавления функций или исправления ошибок во многих проектах.

Вы создаете патч с помощью команды diff (например).

Затем вы можете отправить этот патч в список рассылки для разработчиков и, если он получен правильно, то коммиттер применит патч (таким образом, автоматически применяя ваши изменения) и передаст код.

Патчи применяются с помощью команды исправления.

1 голос
/ 08 октября 2008

Патч, обычно в форме файла .patch, является распространенным форматом плоских файлов для передачи различий между двумя наборами файлов кода. Поэтому, если вы работаете над проектом с открытым исходным кодом, вносите изменения в файлы и хотите отправить его владельцу проекта для регистрации (обычно потому, что у вас нет прав на регистрацию), вы можете сделать это с помощью патча. .

В WinMerge встроена эта функциональность, как и во многих других инструментах, таких как TortoiseSVN.

1 голос
/ 08 октября 2008

Патч - это файл, содержащий всю необходимую информацию, чтобы превратить дерево исходного кода в ваше собственное. Обычно он создается такими инструментами, как diff или svn diff или git format-patch.

Традиционно проекты с открытым исходным кодом принимают заявки от обычных клубов в виде патчей, поэтому им не нужно предоставлять другим доступ к своим репозиториям.

0 голосов
/ 08 октября 2008

Я всегда верил, что этот термин означает исправление ошибки, например, наколенник, который мама надевала на дырявые джинсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...