Я учусь использовать patch
и столкнулся со странным поведением при исправлении двух каталогов:
original_directory
содержит один файл (file1
), содержащий три строки. updated_directory
содержит два файла: file1
с двумя дополнительными строками и дополнительный file2
(содержащий семь строк).
Я выдал diff -Nur original_directory/ updated_directory/ > original_directory.patch
.Однако, когда я выполняю патч (patch -p0 < original_directory.patch
), я получаю следующий вывод:
patching file updated_directory/file1
Reversed (or previously applied) patch detected! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file updated_directory/file1.rej
The next patch would create the file updated_directory/file2,
which already exists! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored
Однако, когда я выпускаю cd original_directory/; patch -p1 < ../original_directory.patch
, все работает просто отлично!
Яуверен, что patch -p0 < original_directory.patch
работал только на днях ...