使用git format-patch或bundle向后移植f2fs linux驱动程序

时间:2013-12-17 15:57:05

标签: git format-patch

我尝试将f2fs文件系统驱动程序从linux-3.13-rc4反向移植到运行3.7.10-1的工作站,其中f2fs尚不存在。我首先尝试简单地将fs / f2fs目录复制到我的工作站,但是由于一些内部vfs帮助程序在3.7和3.13之间发生了变化,因此无法编译。所以我尝试使用

获取fs / f2fs的完整git历史记录

git format-patch 39a53e0ce0df01b3cf4bb898c7ae2fd2189647d5 ^ fs / f2fs /

所提到的提交(“f2fs:add superblock and major in-memory structure”)是创建fs / f2fs /目录的提交,然后

git am * .patch

这里,git am不成功:某些提交不适用,因为它们已经应用(git format-patch生成的修补程序中有相同修补程序的两个副本)或者因为修补程序丢失(结果合并)。我想在我的副本中获取历史记录,以便能够进行bissect,然后删除vfs_helper引起的更改,同时保留稍后的错误修复。

任何提示?

1 个答案:

答案 0 :(得分:1)

扩展sun对相关问题Git: How to create patches for a merge?的回答,我终于找到了解决方案:

   git log -p --pretty=email --stat -m --first-parent --reverse \
   39a53e0ce0df01b3cf4bb898c7ae2fd2189647d5^..master fs/f2fs/ | \
   csplit -b %04d.patch - '/^From .*$/' '{*}'
   rm xx0000.patch

这会将名为xx0001.patch的补丁创建到xxnnnn.patch,可以使用

   git am *.patch