Я пытаюсь сделать патч, как представлено здесь .
Скажем, у меня есть две директории pp1(modified version)
и pp0(clean version)
я создаю файл патча pp0.patch
с помощью diff
команды:
diff -crB pp0 pp1 > pp0.patch
Проблема в том, что если файл есть только в pp1, он не будет включен в патч. Как обойти это?
ОБНОВЛЕНИЕ :
я сначала перехожу в каталог pp0 и проверяю, будет ли исправление успешным
patch --dry-run -p1 -i /path-to-pp0.patch
Хотя я добавил --new-file
к diff
команде, те, кто только в pp1
, не перечислены в результате
ОБНОВЛЕНИЕ :
я случайно исправил неправильный файл, так
diff -crb --new-file pp1 pp0 > pp0.patch
или
diff -crNb pp1 pp0 > pp0.patch
Сделаю
Немедленный ответ:
diff -N
как объяснил поотцко . Вы обнаружите, что многие патчи созданыdiff -urN
.Что может сделать вашу жизнь лучше: начните использовать инструмент контроля версий. Если вы ничего не знаете, начните с одной из трех основных распределенных систем контроля версий: Bazaar , Git или Mercurial . Проверяйте чистую версию, работайте, проверяйте свою работу столько раз, сколько захотите, и попросите свою систему управления версиями провести различие между чистой версией и вашей работой.
источник