For example, if I have two files:
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本地的patch命令与统一的差异进行操作?
2. 如果无法应用统一格式,哪种差异格式被认为是最具可移植性的?
更新:我已经找到了第一个问题的答案。似乎在Solaris上,如果第二个文件(在本例中为file2)存在于与第一个文件(file1)相同的文件夹中,则patch
会挂起。例如,以下非常常见的差异:
--- 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
以下是不同之处(请注意第二个文件已被重命名):
--- 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
这将完美地工作。
关于我的第二个问题,请参见下面接受的答案。