Патч - это, как правило, файл, содержащий информацию о том, как что-то изменить (очень часто для исправления ошибки, но также может быть улучшением). Существуют различные виды патчей.
Патч исходного кода содержит информацию о том, как необходимо изменить один или несколько файлов исходного кода. Вы можете легко сгенерировать их с помощью команды diff и применить их с помощью команды patch (в системах Linux / UNIX эти команды являются стандартными).
Однако есть и двоичные патчи. Двоичный патч содержит информацию о том, как необходимо изменить определенные байты в двоичном файле. Двоичные исправления, конечно, редки в мире OpenSource, но в первые дни компьютеров я видел их много, чтобы модифицировать поставляемые двоичные файлы (обычно для устранения ошибки).
Отправка исправления означает, что вы что-то локально исправили, и теперь вы отправляете файл кому-то, чтобы он мог применить это исправление к своей локальной копии или к общедоступной копии в Интернете, чтобы другие пользователи могли воспользоваться исправлением.
Патчи также часто используются, если у вас есть некоторый исходный код, который почти компилируется на определенной платформе, но для его компиляции необходимы небольшие изменения. Конечно, вы можете взять исходный код, изменить его и предложить модифицированный код для загрузки. Но что, если исходный источник снова изменится (например, исправятся ошибки или будут добавлены небольшие улучшения)? Затем вам пришлось повторно загрузить исходный код, применить изменения снова и предложить новую модифицированную версию. Это большая работа, чтобы поддерживать ваш модифицированный источник в актуальном состоянии. Вместо изменения вы создаете diff между оригиналом и измененной копией и сохраняете его на своем сервере. Если теперь пользователь хочет загрузить и скомпилировать приложение из исходного кода, он может сначала загрузить самую последнюю и лучшую версию исходного кода, затем применить ваш патч (чтобы он скомпилировался) и всегда имеет самую последнюю версию, без необходимости изменять патч. Проблема возникнет только в том случае, если исходный источник был изменен точно в одном из мест, где изменяется ваш патч. В этом случае система откажется применить исправление, и необходимо будет сделать новое исправление.