/********************************************************************** * I.MX6 git patch * 说明: * 之前给I.MX6 Android打补丁使用的是shell的patch命令,发现总是出现 * png图片丢失,具体原因没找到,之后问了Charlie,他提到git diff相关的 * 内容,查了资料才知道原来那些补丁包是git专用的补丁包。 * * 2016-4-26 深圳 南山平山村 曾剑锋 *********************************************************************/ 一、参考文档: Git的Patch功能 http://www.cnblogs.com/y041039/articles/2411600.html 二、补丁生成: 1. shell命令diff生成标准patch; 2. git diff生成标准patch; 3. git format-patch生成的git专用补丁; 三、补丁应用: 1. shell命令patch应用补丁; 2. git am应用git专用补丁; 四、示例patch: 1. 部分内容: From fa73e3d15bfa531cf87e21fa4c4bcbbc517c4d9d Mon Sep 17 00:00:00 2001 From: Romain Sertelon <romain@sertelon.fr> Date: Thu, 10 Jan 2013 12:31:43 +0100 Subject: [PATCH] enhance ethernet handling thanks to Android x86 project patch See https://groups.google.com/forum/?fromgroups=#!topic/android-x86/YmWjtOLLdDs for patch origin Fix the follow issue: 1. static IP 2. reboot not work Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com> --- Android.mk | 1 + api/current.txt | 134 +++++ core/java/android/app/ContextImpl.java | 9 + core/java/android/app/DownloadManager.java | 6 + core/java/android/content/Context.java | 10 + core/java/android/net/EthernetDataTracker.java | 24 +- core/java/android/provider/Settings.java | 12 + core/jni/Android.mk | 1 + core/jni/AndroidRuntime.cpp | 2 + core/jni/android_net_ethernet.cpp | 421 ++++++++++++++++ core/res/res/values/config.xml | 3 + .../java/android/net/ethernet/EthernetDevInfo.aidl | 19 + ...... 2. 说明: 1. 不仅有diff的信息,还有提交者,时间等等; 2. 仔细一看你会发现,这是个E-mail的文件,你可以直接发送它; 3. 这种patch,我们要用git am来应用。 五、两种patch的比较(参考文章里的内容): 1. 兼容性:很明显,git diff生成的Patch兼容性强。如果你在修改的代码的官方版本库不是Git管理的版本库,那么你必须使用git diff生成的patch才能让你的代码被项目的维护人接受。 2. 除错功能:对于git diff生成的patch,你可以用git apply --check 查看补丁是否能够干净顺利地应用到当前分支中;如果git format-patch 生成的补丁不能打到当前分支,git am会给出提示,并协助你完成打补丁工作,你也可以使用git am -3进行三方合并,详细的做法可以参考git手册或者《Progit》。从这一点上看,两者除错功能都很强。 3. 版本库信息:由于git format-patch生成的补丁中含有这个补丁开发者的名字,因此在应用补丁时,这个名字会被记录进版本库,显然,这样做是恰当的。因此,目前使用Git的开源社区往往建议大家使用format-patch生成补丁。