Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
freebsd:diff [08/06/2023 21:00] – [diff patch] Method | freebsd:diff [10/06/2023 21:45] (поточний) – [Мій приклад] Method | ||
---|---|---|---|
Рядок 6: | Рядок 6: | ||
- Помістіть копії обох каталогів, | - Помістіть копії обох каталогів, | ||
- | |||
- Запустіть відповідну різницю в двох каталогах, | - Запустіть відповідну різницю в двох каталогах, | ||
- | ```diff -ruN orig/ new/ > file.patch | + | diff -ruN orig/ new/ > file.patch |
- | # -r == recursive, so do subdirectories | + | |
- | # -u == unified style, if your system lacks it or if recipient | + | |
- | # may not have it, use " | + | |
- | # -N == treat absent files as empty``` | + | |
Якщо в користувача є каталог orig/, він може відтворити новий, запустивши patch. | Якщо в користувача є каталог orig/, він може відтворити новий, запустивши patch. | ||
Рядок 20: | Рядок 18: | ||
- Перемістіть файл виправлення до каталогу, | - Перемістіть файл виправлення до каталогу, | ||
- | |||
- Цю папку буде знищено, | - Цю папку буде знищено, | ||
- | `patch -s -p0 < file.patch | + | patch -s -p0 < file.patch |
- | # -s == silent except errors | + | |
- | # -p0 == needed to find the proper folder` | + | |
На цьому етапі папка orig/ містить новий вміст, але все ще має стару назву, тому: | На цьому етапі папка orig/ містить новий вміст, але все ще має стару назву, тому: | ||
Рядок 39: | Рядок 36: | ||
Мені потрібно було створити файл виправлення та надіслати його комусь, | Мені потрібно було створити файл виправлення та надіслати його комусь, | ||
- | * Елемент ненумерованого спискуРезервне копіювання вашого directoryдоdirectory.orig | + | * Резервне копіювання вашого directory до directory.orig |
- | * Елемент ненумерованого спискуЗмініть свій directory, щоб досягти бажаного стану | + | * Змініть свій directory, щоб досягти бажаного стану |
- | * Елемент ненумерованого спискуЗбережіть різницю від directory.origдо directory, file.patchщоб ім’я відповідало одержувачу | + | * Збережіть різницю від directory.orig до directory, file.patch щоб ім’я відповідало одержувачу |
Ось мої нотатки: | Ось мої нотатки: | ||
Рядок 73: | Рядок 70: | ||
+ | Для створення патча: | ||
+ | * скопіюйте резервну копію < | ||
+ | * створіть/ | ||
+ | * змініть робочий каталог на < | ||
+ | * створіть файл виправлення разом із < | ||
+ | * -N –новий-файл Вважати відсутні файли порожніми. | ||
+ | * -a –текст Розглядати всі файли як текст. | ||
+ | * -r –recursive Рекурсивно порівнює всі знайдені підкаталоги. | ||
+ | * -u -U NUM –unified[=NUM] Вивести NUM (за замовчуванням 3) рядків уніфікованого контексту. | ||
+ | |||
+ | Щоб застосувати патч: | ||
+ | - змінити робочий каталог на < | ||
+ | - -s або –silent або –quiet Працювати безшумно, | ||
+ | - -pN або –strip=N Вилучає з файлів найменший префікс, | ||
+ | |||
+ | Щоб скасувати виправлення (зауважте, | ||
+ | - змінити робочий каталог на < | ||
+ | - -R або –reverse Припустимо, | ||
+ | - -s або –silent або –quiet Працює тихо, якщо не виникає помилка. | ||
+ | - -pN або –strip=N Вилучає з файлів найменший префікс, | ||
+ | |||
+ | |||
+ | ===== Мій приклад ===== | ||
+ | |||
+ | <code bash> | ||
+ | cd /usr/local/ | ||
+ | cp -a nodeny nodeny.orig | ||
+ | # change nodeny | ||
+ | |||
+ | # make patch | ||
+ | diff -Naru ./ | ||
+ | |||
+ | # apply patch for nodeny.orig | ||
+ | patch -d nodeny.orig/ | ||
+ | </ | ||