Próbuję zrobić łatkę, jak tutaj wprowadzono .
Powiedzmy, że mam dwa katalogi pp1(modified version)
i pp0(clean version)
tworzę plik łatki pp0.patch
za pomocą diff
polecenia:
diff -crB pp0 pp1 > pp0.patch
Problem polega na tym, że jeśli plik znajduje się tylko w pp1, nie zostanie dołączony do łatki. Jak obejść ten problem?
AKTUALIZACJA :
Najpierw przechodzę do katalogu pp0 i sprawdzam, czy łatka się powiedzie
patch --dry-run -p1 -i /path-to-pp0.patch
Chociaż dodałem --new-file
do diff
polecenia, te tylko w pp1
nie są wymienione w wyniku
AKTUALIZACJA :
Przypadkowo załatałem niewłaściwy plik, więc
diff -crb --new-file pp1 pp0 > pp0.patch
lub
diff -crNb pp1 pp0 > pp0.patch
zrobi
Bezpośrednia odpowiedź:
diff -N
jak wyjaśnia pootzko . Przekonasz się, że wiele łatek jest tworzonych przezdiff -urN
.Co może poprawić twoje życie: zacznij korzystać z narzędzia kontroli wersji. Jeśli nie znasz, zacznij od jednego z trzech głównych rozproszonych systemów kontroli wersji , Bazaar , Git lub Mercurial . Sprawdzaj czystą wersję, pracuj, sprawdzaj swoją pracę tyle razy, ile chcesz, i poproś system kontroli wersji o różnicę między czystą wersją a twoją pracą.
źródło