我在Linux上,致力于分支PHP项目.我想创建一个我已经完成的工作的补丁文件,可以应用于最新的父代码.原始文件夹和新代码文件夹都是很多子目录(因此需要递归).
出于某种原因,我这样做:
diff -ur folder1 folder2 > newcode.patch
Run Code Online (Sandbox Code Playgroud)
我没有设法获得包含所有新文件的补丁文件,它甚至不包含一些更深层次的文件更改(大约3级以上).
任何想法如何去做?我看过Meld和Kdiff3 ......但他们似乎也没做我想做的事.
我怀疑你有一个类似的目录结构:
folder1/
text.txt
level1/
text1.txt
level2/
text2.txt
level3/
text3.txt
folder2
text.txt
level1/
text1.txt
level2/
text2.txt
anewdirectory/
newtext.txt
level3/
text3.txt
newfiled3.txt
Run Code Online (Sandbox Code Playgroud)
在这种情况下,diff将忽略该文件newtext.txt中anewdirectory/.它可能也没有拿起newfiled3.txt任何一个文本.相反,它报告的内容如下:
..
Only in folder2/level1/level2/ : anewdirectory
Only in folder2/level1/level2/level3/ : newfiled3.txt
..
Run Code Online (Sandbox Code Playgroud)
这是你看到的症状吗?
试试:
diff -urBNs folder1/ folder2/ > code.patch
Run Code Online (Sandbox Code Playgroud)