windows和linux生成代码patch补丁


如需转载请标明出处:http://blog.csdn.net/itas109

环境:

OS: Ubunutu 22.04
diff: 3.8
patch: 2.7.6

前言

使用diff和patch生成和打代码补丁。

注意:windows下可使用git bash工具。

1. .patch补丁

单个文件方式

制作补丁:diff -u old_file new_file > xxx.patch
打补丁:patch -p0 < xxx.patch 或 patch -p0 old_file xxx.patch
卸补丁:patch -RE -p0 < xxx.patch

文件夹方式

制作补丁:diff -ur old_dir new_dir > xxx.patch
打补丁(进入old_dir目录):patch -p1 < ../xxx.patch
卸补丁(进入old_dir目录):patch -R -p1 < ../xxx.patch

$ diff help
-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context
-r, --recursive                 recursively compare any subdirectories found
-N, --new-file                  treat absent files as empty
$ patch --help
-p NUM  --strip=NUM  Strip NUM leading components from file names.
-E  --remove-empty-files  Remove output files that are empty after patching.
-R  --reverse  Assume patches were created with old and new files swapped.

2. 差异文件按目录结构导出到文件夹

使用Beyond Compare比较两个文件夹。

选择【视图】-【显示差异但无独有项】

【Ctrl+A】全选-右键【复制到文件夹】-【选择左边或右边】-【选择文件夹】-【开始】


问题

1. “Hunk #1 FAILED at 1 (different line endings)”

$ dos2unix patch-file.patch
$ patch -p1 < patch-file.patch
$ unix2dos modified-files...

License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

如需转载请标明出处:http://blog.csdn.net/itas109


Refrence:
NULL

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐