jak dołączyć nowy plik do łatki

9

Próbuję zrobić łatkę, jak tutaj wprowadzono .
Powiedzmy, że mam dwa katalogi pp1(modified version)i pp0(clean version)tworzę plik łatki pp0.patchza pomocą diffpolecenia:

 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-filedo diffpolecenia, te tylko w pp1nie 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

manuzhang
źródło

Odpowiedzi:

9

Powinieneś być w stanie to zrobić za pomocą --new-fileprzełącznika. Zaczerpnięte ze strony man diff :

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

Spróbuj tego:

diff -crB --new-file pp0 pp1 > pp0.patch
pootzko
źródło
Nie wiem, czy
załatałem
przepraszam, że działa
manuzhang,
3

Bezpośrednia odpowiedź: diff -Njak wyjaśnia pootzko . Przekonasz się, że wiele łatek jest tworzonych przez diff -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ą.

Gilles „SO- przestań być zły”
źródło
dzięki, chciałbym mieć jeden w prawdziwym życiu i powróciłem do przeszłości, kiedy popełniłem błąd :)
manuzhang