Что именно означает слово Patch, когда речь идет о "отправке патча"?

Что именно означает слово patch, когда речь идет о "отправке патча"?

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

10 ответов


Это файл со списком различий между файлами кода, которые были изменены. Обычно это в формате, созданном путем выполнения 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, имеет хороший маленький праймер при отправке кода в проекты с открытым исходным кодом, который охватывает создание и отправку исправлений.


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

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

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

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

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


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

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


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

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


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

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

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

патчи использование команды patch.

Как правило, это подразумевает отправку унифицированного файла diff с совокупным набором изменений для функции. Ты можешь!--1-->подробнее о патчах в Википедии. Несколько систем контроля версий (svn,git и др.) создаст файл исправления для вас на основе набора изменений.


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

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

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


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


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