1

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

git 格式补丁 39a53e0ce0df01b3cf4bb898c7ae2fd2189647d5^ fs/f2fs/

其中提到的提交(“f2fs:添加超级块和主要内存结构”)是创建 fs/f2fs/ 目录的提交,然后

git am *.patch

在这里, git am 不成功:一些提交不适用,要么是因为它们已经应用(在 git format-patch 生成的补丁中有两个相同补丁的副本),要么是因为缺少补丁(合并的结果)。我希望我的副本中的历史能够一分为二,然后删除 vfs_helper 引起的更改,同时保留以后的错误修复。

有什么提示吗?

4

1 回答 1

1

Expandingsun对相关问题Git: How to create patch 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

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

   git am *.patch
于 2013-12-18T13:43:39.807 回答