Для поширення невеликих змін, внесених до набори різних файлів (наприклад, вихідний код програмного забезпечення), в UNIX-подібних системах широко застосовуються патчі. Вони містять тільки відомості про правки, які необхідно внести в вихідний файл для його модифікації до актуального стану.
Вам знадобиться
- - встановлена утиліта diff.
Інструкція
Підготуйте вихідний файл з інформацією, для зміни якої буде створюватися патч. Дані у файлі можуть бути як текстовими, так і бінарними.
Створіть дублікат файлу, підготовленого на першому кроці. Скопіюйте його в іншу директорію під тим же ім'ям або в поточний каталог, але під іншим ім'ям.
Змініть файл-дублікат, створений на попередньому кроці. Відредагуйте належним чином текст у відповідному редакторі або повторно дані у файлі додатком, призначеним для роботи з ним.
Ознайомтеся з інформацією щодо використання утиліти diff. Запустіть емулятор терміналу або переключіться в консоль. Виконайте команду: diff --helpдля виведення вбудованої довідки. Спробуйте виконати команди: man diffіліinfo diffдля відображення відповідних сторінок документації, якщо вона встановлена. Особливу увагу зверніть на параметри -a, -c (-C), -e, --normal і -n (--rsc).
Створіть патч. Виконайте команду diff з потрібними опціями, перенаправивши її висновок у файл. Як параметри, наступних після опцій, вкажіть вихідний і модифікований файли. Найпростіший приклад використання diff для створення патча на основі даних файлів, розташованих в поточному каталозі, може виглядати так: diff source.txt modified.txt> sample.patch
Перегляньте сформований патч. Використовуйте відповідний текстовий редактор або виведіть його вміст в консоль командою cat. Наприклад: cat sample.patchіліcat sample.patch | more
Перевірте коректність створеного файлу змін. Скористайтеся командою patch. За допомогою опції -i передайте їй шлях до патчу. Використовуйте опцію -o для призначення імені файлу результату. Це запобіжить перезапис вихідного файлу, шлях до якого має бути вказаний останнім параметром. Наприклад: patch -i sample.patch -o test.txt source.txtСравніте згенерований файл і той, який був створений на третьому кроці. Вони повинні бути ідентичними. Запустіть команду patch з параметрами --dry-run і --verbose, передавши їй передостаннім і останнім аргументами імена вихідного і патч-файлу: patch --dry-run --verbose source.txt sample.patchІзмененія у файли вноситися не будуть, але відобразиться докладний звіт про дії, які були б зроблені при реальному виконанні команди. По ньому також можна судити про коректність створеного патча.