【发布时间】:2010-08-13 14:04:44
【问题描述】:
例如,如果我有两个文件:
文件1:
This is file 1
和文件2:
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 native patch 命令?
2。如果无法应用统一格式,则认为哪种 diff 格式最可移植?
更新:
我在问题的第一部分找到了答案。如果第二个文件(在本例中为 file2)与第一个文件(file1)位于同一文件夹中,则 Solaris 上的 patch 似乎挂起。例如,以下相当常见的 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
虽然以下差异(注意第二个文件已重命名):
--- 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
将完美运行。
对于我的问题的第二部分,请参阅下面接受的答案。
【问题讨论】:
标签: diff solaris patch unified-diff