2010-11-18 14 views

Odpowiedz

17

Ważne jest zawartość pliku, a nie rozszerzenie. Oba rozszerzenia sugerują, że pewien rodzaj narzędzia różnicowego (diff, git diff, git format-patch, svn diff) wygenerował dane wyjściowe.

Wiele narzędzi diff generuje dane wyjściowe, które można zastosować za pomocą polecenia patch. Będziesz często potrzebował użyć opcji -d i -p do patch, aby uzyskać odpowiednio dopasowane ścieżki (prefiks paska, nazwa katalogu docelowego). Jeśli widzisz jedno z tych rozszerzeń w pliku rozpowszechnianym online, prawie na pewno jest to wskazówka, że ​​jest kompatybilny z patch.

Wyjście diff Gita jest kompatybilne z poprawką, ale uważam, że svn nie jest. Oczywiście najprostsze plamy generowane przez git diff są prawdopodobnie najlepiej stosowane przez git apply, a łatki generowane przez git format-patch są przeznaczone do użytku z git-am.

5

Nie ma różnic. Narzędzie diff tworzy plik poprawki, który jest stosowany za pomocą patch.

+1

Oznacza to, że gdy używasz 'diff' do utworzenia poprawki, nazywasz ją foo.diff lub foo.patch (lub cokolwiek innego). Program 'łatki' nie dba o to. – eaj

+0

, więc jeśli podano plik diff i mówi się, że powinieneś go użyć do łatania źródła, co to oznacza. Czy mogę użyć łaty -d -p [n] , aby ją załatać? – Sen

+2

@Sen: "Czy mogę użyć' łatki' ...? " Najlepszą odpowiedzią jest "spróbuj i zobacz". Jeśli łatka nie ma zastosowania lub "łatka" nie może jej odczytać, dostaniesz błędy. Jeśli to działa, działa. – Cascabel

5

łatka to ujednolicony diff (-u), jeśli zrobisz: diff -u oldfile newfile, z linii poleceń łata, można zastosować różnice do oldfile stać newfile gdzieś indziej.

+0

Podoba mi się ten pomysł. Łatki będące zbiorem różnic. Nie szukałem "poprawnego rozszerzenia", ale być może standardowej praktyki nazywania. Niezależnie od tego, czy jest to powszechnie stosowane, ma to dla mnie sens. Posłużę się rozszerzeniem .diff dla różnic pojedynczego pliku i .patch dla wielu skonsolidowanych różnic. –

Powiązane problemy