我想从特定gcc
分支创建一个补丁,将其与官方版本进行比较;因此,当我从稳定版本中解压缩 tarball 时,我可以应用补丁并获得与该特定分支中的内容相同的内容。
这是我第一次需要创建补丁,所以这是我第一次这样做,我主要关心的是获得正确的选项和解析,因为我们正在谈论一个非常重要的软件
diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch
Run Code Online (Sandbox Code Playgroud)
这是否足够并且是最好的方法?
jim*_*mij 28
是的,这是创建补丁的好方法。
简而言之:
要为单个文件创建补丁,您的命令可能看起来像
diff -Naru file_original file_updated > file.patch
在哪里
-N
: 将不存在的文件视为空-a
: 将所有文件视为文本-r
: 递归比较找到的任何子目录-u
: 输出 NUM(默认 3)行统一上下文为整个目录创建补丁:
diff -crB dir_original dir_updated > dfile.patch
在哪里
-c
: 输出 NUM(默认 3)行复制的上下文 -r
: 递归比较任何子目录-B
: 忽略所有行都是空白的更改毕竟应用这个补丁可以运行
patch -p1 --dry-run < dfile.patch
Run Code Online (Sandbox Code Playgroud)
其中 switchp
指示 patch 去除路径前缀,以便正确识别文件。大多数情况下应该是1
。
--dry-run
如果您对打印在屏幕上的结果感到满意,请删除。