我在“修改的目录”(在第3个子级文件夹中)中添加了一个新文件,当我尝试使用以下命令生成修补程序文件时,看起来diff命令忽略新文件:diff命令忽略新目录中的新文件
diff –ur "original directory" "modified directory" > version1.patch
我感谢您的帮助..
我在“修改的目录”(在第3个子级文件夹中)中添加了一个新文件,当我尝试使用以下命令生成修补程序文件时,看起来diff命令忽略新文件:diff命令忽略新目录中的新文件
diff –ur "original directory" "modified directory" > version1.patch
我感谢您的帮助..
您还需要-N
标志。从man diff
:
-N --new-file
Treat absent files as empty.
当生成补丁, “标准” 差异标志-Npur
。你已经发现你为什么需要-N
; -p
使修补程序更易于人类阅读。
用这个命令试试,
差异-RUN “原目录”, “修改后的目录”> version.patch
哪个版本的diff能够理解'-R'标志,它是什么意思? – 2012-07-09 17:34:32
GNU diff 3.3(2013)没有'-R'选项。 – gioele 2014-09-22 09:50:34
感谢您的意见。 -Npur为我工作,现在我可以看到补丁文件中的.c文件更改。但是,当我尝试使用以下命令“patch -p1 <../ patch-x.y.z(补丁文件)”修补它时,“我没有看到在相应的子目录中创建了这个新的C文件。我在这里错过了什么? – user1427180 2012-07-06 21:40:19
@ user1427180你没有提供足够的细节来回答你的第二个问题,但是没有:你没有错过任何东西,它应该工作,并且最有可能*工作;你可能只是看着错误的文件。 – 2012-07-07 03:27:57
我的意思是:我在其中一个子目录中创建了一个新的.c文件,我可以在修补程序文件中看到这些更改,并且当我尝试重新应用基本版本的修补程序时,我仍然没有看到“patch”命令没有在相应的子目录(它存在于修改的目录中)中创建该文件。 – user1427180 2012-07-09 14:50:28