Невозможно применить единый патч различий в Solaris

Например, если у меня есть два файла:

file1:

This is file 1

и file2:

This is file 2

и создайте патч с помощью следующей команды:

diff -u file1 file2 > files.patch

результат:

--- file1       Fri Aug 13 17:53:28 2010
+++ file2       Fri Aug 13 17:53:38 2010
@@ -1,1 +1,1 @@
-This is file 1
+This is file 2

Затем, если я попытаюсь применить этот патч в Solaris с помощью команды patch:

patch -u -i files.patch

, он зависнет:

 Looks like a unified context diff.
File to patch:

1. Есть ли способ использовать собственную команду patch Solaris с унифицированными различиями?

2. Какой формат сравнения считается наиболее переносимым, если невозможно применить единый формат?

Обновление: Я нашел ответ на первую часть своего вопроса. Кажется, что патч на Solaris зависает, если второй файл (в данном случае file2) существует в той же папке, что и первый (file1). Например, следующий довольно распространенный diff:

--- a/src/file.src       Sat Aug 14 23:07:29 2010
+++ b/src/file.src       Sat Aug 14 23:07:37 2010
@@ -1,2 +1,1 @@
-1
-
+2

не будет работать с довольно распространенной командой patch:

patch -p1 -u -d a < file.patch

, тогда как следующий diff ( обратите внимание, что второй файл переименован в ):

--- a/src/file.src       Sat Aug 14 23:07:29 2010
+++ b/src/file_new.src       Sat Aug 14 23:07:37 2010
@@ -1,2 +1,1 @@
-1
-
+2

будет работать отлично.

Относительно второй части моего вопроса см. Принятый ответ ниже.

5
задан Shcheklein 14 August 2010 в 19:17
поделиться