Например, если у меня есть два файла:
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 -u -i files.patch
, он зависает:
Looks like a unified context diff.
File to patch:
1.Есть ли способ использовать встроенную команду исправления Solaris с унифицированными разностями?
2.Какой формат diff считается наиболее переносимым, если невозможно применить унифицированный формат?
Обновление: Я нашел ответ на первую часть моего вопроса.Кажется, что patch
в 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 -p1 -u -d a < file.patch
, пока следующий diff ( note, второй файл переименован ):
--- 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
будет отлично работать.
В отношении второй части моего вопроса см. Принятый ответ ниже.