Команда patch не может создать новый файл

Я тестировал команду patch и создал 2 директории вот так:

d1:

d2:
file1.txt

Я использовал diff для создания патч-файла и пропатчил его:

diff -Naur d1 d2 > patchfile.txt
patch -p0 <patchfile.txt

но он не создал d1/file1.txt и показывает мне это сообщение:

The next patch would create the file d2/file1.txt,
which already exists!  Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored

Я не мог понять проблему, пожалуйста, помогите мне с этим.

patchfile.txt:

--- d1/file1.txt    1969-12-31 19:00:00.000000000 -0500
+++ d2/file1.txt    2017-11-12 22:48:07.428873802 -0500
@@ -0,0 +1,3 @@
+a
+b
+c

1 ответ

diff -Naur d1 d2 > patchfile.txt
patch -p0 <patchfile.txt

... ты имел ввиду:

cd d1; patch -p1 < ../patchfile.txt

В конце концов, файл патча содержит изменения, которые произошли (новый файл в d2). Нет смысла говорить ему делать то, что уже сделано, не так ли?

Другие вопросы по тегам