Что именно означает слово patch при обращении к "отправке патча"?
Я видел, что это много использовалось, особенно в мире с открытым исходным кодом. Что это значит и что именно участвует в отправке патча?
Что именно означает слово patch при обращении к "отправке патча"?
Я видел, что это много использовалось, особенно в мире с открытым исходным кодом. Что это значит и что именно участвует в отправке патча?
Это файл со списком различий между измененными файлами кода. Обычно это в формате, создаваемом с помощью 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;
?>
Патч обычно представляет собой файл, содержащий информацию о том, как что-то изменить (очень часто исправлять ошибку, но также может быть улучшением). Существуют разные виды патчей.
Патч исходного кода содержит информацию о том, как один или несколько файлов исходного кода необходимо изменить. Вы можете легко сгенерировать их с помощью команды diff, и вы можете применить их с помощью команды patch (в системах Linux/UNIX эти команды являются стандартными).
Однако существуют также двоичные исправления. Бинарный патч содержит информацию о том, как некоторые байты внутри двоичного файла нужно изменить. Разумеется, двоичные исправления встречаются редко в мире OpenSource, но в первые дни компьютеров я видел их много, чтобы модифицировать отгруженные двоичные файлы (обычно для обхода ошибки).
Отправка патча означает, что вы локально исправили что-то, и теперь вы отправляете файл кому-то, поэтому он может применить этот патч к своей локальной копии или к общедоступной копии в Интернете, таким образом, другие пользователи могут воспользоваться исправлением.
Патчи также часто используются, если у вас есть исходный код, который почти компилируется на определенной платформе, но для его компиляции необходимы небольшие изменения. Конечно, вы можете взять источник, изменить его и предложить модифицированный код для загрузки. Но что, если исходный источник снова изменится (например, ошибки исправлены или добавлены небольшие улучшения)? Затем вам пришлось повторно загрузить исходный код, снова применить изменения и предложить новую измененную версию. Это большая работа по обновлению вашего измененного источника. Вместо изменения вы создаете разницу между оригиналом и измененной копией и сохраняете его на своем сервере. Если теперь пользователь хочет загрузить и скомпилировать приложение из источника, он может сначала загрузить последнюю и самую лучшую версию исходного источника, затем применить патч (чтобы он скомпилировался) и всегда иметь последнюю версию, без необходимости изменять патч. Проблема возникает только в том случае, если исходный исходный код был изменен точно в одном из мест, измененных вашим патчем. В этом случае система откажется применить патч, и необходимо создать новый патч.
Патч - это файл, содержащий всю необходимую информацию, чтобы превратить дерево источника поддержки в ваше собственное. Он обычно создается с помощью таких инструментов, как diff
или svn diff
или git format-patch
.
Традиционно проекты с открытым исходным кодом принимают заявки от обычных schlubs в виде патчей, поэтому им не нужно предоставлять другим пользователям доступ к своим репозиториям.
Патч, обычно в виде файла .patch, представляет собой общий формат плоского файла для передачи различий между двумя наборами файлов кода. Поэтому, если вы работаете над проектом с открытым исходным кодом и делаете изменения кода в файлах и хотите передать это владельцу проекта, которое будет проверено (обычно, поскольку у вас нет прав на проверку), вы сделали бы это с помощью патча.
У WinMerge встроена эта функция, как и многие другие инструменты, такие как TortoiseSVN.
Файл патча представляет собой разницу между существующим источником и источником, который вы изменили. Это основное средство добавления функций или исправления ошибок во многих проектах.
Вы создаете патч, используя команду diff (например).
Затем вы можете отправить этот патч в список рассылки разработки, и если он получится хорошо, тогда коммиттер применит патч (таким образом автоматически применяя ваши изменения) и передаст код.
Патчи применяются с использованием команды patch.
Как правило, это означает предоставление единого файла diff с совокупным набором изменений для функции. Вы можете узнать больше о патчах в Википедии. Несколько систем управления версиями (svn, git и т.д.) Создадут для вас патч файл на основе набора изменений.
1. n. A temporary addition to a piece of code, usually as a quick-and-dirty
устранение существующей ошибки или ошибки. Патч может работать или не работать, и может или не может в конечном итоге быть включенным в программу. Отличается от diff или мода тем фактом, что патч генерируется более примитивными средствами, чем остальные программы; классическими примерами являются инструкции, модифицированные с использованием фронта переключатели панели и изменения, внесенные непосредственно в бинарный исполняемый файл программы первоначально написанный в HLL. Сравните однострочное исправление.
См. полное определение в файле жаргона здесь
Патч также используется в акте обновления системных двоичных файлов. Microsoft постоянно отправляет исправления, но они не являются исходным кодом. Это файлы .msp, которые устанавливают улучшенные двоичные файлы. Как и во всех терминах компьютерной науки, патч перегружен.
Я всегда считал, что термин означает исправление ошибки, например, колено-патч, на котором мама использовала ваши дырявые джинсы.