Подтвердить что ты не робот

Что означает слово "Патч", означающее "сообщение патча"?

Что именно означает слово patch при обращении к "отправке патча"?

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

Вы создаете патч, используя команду diff (например).

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

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

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

Ответ 10

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