Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
freebsd:diff [15/01/2023 13:08] – створено Method | freebsd:diff [10/06/2023 21:45] (поточний) – [Мій приклад] Method | ||
---|---|---|---|
Рядок 5: | Рядок 5: | ||
Щоб створити файл виправлення: | Щоб створити файл виправлення: | ||
- | Помістіть копії обох каталогів, | + | - Помістіть копії обох каталогів, |
- | + | | |
- | Запустіть відповідну різницю в двох каталогах, | + | |
diff -ruN orig/ new/ > file.patch | diff -ruN orig/ new/ > file.patch | ||
- | # -r == recursive, so do subdirectories | + | - -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. | ||
Рядок 19: | Рядок 17: | ||
Щоб повторно створити нову папку зі старої папки та файлу виправлення: | Щоб повторно створити нову папку зі старої папки та файлу виправлення: | ||
- | Перемістіть файл виправлення до каталогу, | + | - Перемістіть файл виправлення до каталогу, |
- | + | | |
- | Цю папку буде знищено, | + | |
patch -s -p0 < file.patch | patch -s -p0 < file.patch | ||
- | # -s == silent except errors | + | - -s == silent except errors |
- | # -p0 == needed to find the proper folder | + | |
На цьому етапі папка orig/ містить новий вміст, але все ще має стару назву, тому: | На цьому етапі папка orig/ містить новий вміст, але все ще має стару назву, тому: | ||
mv orig/ new/ # if the folder names are different | mv orig/ new/ # if the folder names are different | ||
- | patch виправляв для мене каталог new/not orig/, але я знайшов -d опцію, яка дозволяє вам спочатку сказати cd в цьому каталозі перед застосуванням виправлення, | + | //patch виправляв для мене каталог new/not orig/, але я знайшов -d опцію, яка дозволяє вам спочатку сказати cd в цьому каталозі перед застосуванням виправлення, |
Рядок 39: | Рядок 36: | ||
Мені потрібно було створити файл виправлення та надіслати його комусь, | Мені потрібно було створити файл виправлення та надіслати його комусь, | ||
- | Резервне копіювання вашого directoryдоdirectory.orig | + | * Резервне копіювання вашого directory до directory.orig |
- | Змініть свій directory, щоб досягти бажаного стану | + | |
- | Збережіть різницю від directory.origдо directory, file.patchщоб ім’я відповідало одержувачу | + | |
Ось мої нотатки: | Ось мої нотатки: | ||
- | # to create patch: | + | `# to create patch: |
# copy < | # copy < | ||
cp -r < | cp -r < | ||
Рядок 70: | Рядок 67: | ||
# -R or --reverse Assume that patch was created with the old and new files swapped. | # -R or --reverse Assume that patch was created with the old and new files swapped. | ||
# -s or --silent or --quiet Work silently, unless an error occurs. | # -s or --silent or --quiet Work silently, unless an error occurs. | ||
- | # -pN or --strip=N Strip smallest prefix containing num leading slashes from files. | + | # -pN or --strip=N Strip smallest prefix containing num leading slashes from files.` |
+ | |||
+ | |||
+ | Для створення патча: | ||
+ | * скопіюйте резервну копію < | ||
+ | * створіть/ | ||
+ | * змініть робочий каталог на < | ||
+ | * створіть файл виправлення разом із < | ||
+ | * -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 / | ||
+ | cp -a nodeny nodeny.orig | ||
+ | # change nodeny | ||
+ | # make patch | ||
+ | diff -Naru ./ | ||
+ | # apply patch for nodeny.orig | ||
+ | patch -d nodeny.orig/ | ||
+ | </ | ||