git - 向邮件列表提交庞大的补丁集

标签 git linux-kernel

我有一个支持新 ARM 平台的 Linux 存储库,我想将其发布到 ARM 内核开发邮件列表上以获得一些反馈,并希望最终将其纳入主流。不幸的是,代码很多,git format-patch 会生成大约 100 个补丁文件。

我读到最好将它们组合在一起进行逻辑更改,但对于新的 ARM 平台,每个部分都与下一个部分一样重要。我最多能做的可能就是将基本平台支持代码与驱动程序代码分开。

此外,我之前的提交有非常模糊的提交消息,例如修复的重新启动代码杂项修复,我不想将其包含在补丁集中。

在不轰炸邮件列表的情况下传达我的更改的最佳方式是什么?我应该把它压缩成一个巨大的补丁吗?不知何故,我认为发送 100 个补丁文件也不会给人留下良好的第一印象。

干杯,

最佳答案

我建议您针对当前主线内核(目前是 v3.8)进行交互式 rebase 。这看起来像下面这样:

git rebase -i origin/v3.8

在可能的情况下,将相关提交压缩在一起,例如,您可能应该为每个驱动程序进行一次提交,为核心代码的每个逻辑部分进行一次提交,如果它们相互依赖,那就可以了,尽管它不应该是循环的。您不需要保留开发过程中的所有错误修复,目标是使补丁易于理解和集成,而不是让它们讲述历史上准确的故事。

如果您需要拆分现有提交,您可以选择edit,然后执行git add -p,这将允许您交互式地选择 diff block 并提交它们一次(此后您可以随时返回重新排序并在必要时进行压缩)。

完成此操作后,您应该拥有一个补丁集,该补丁集将更容易让人们理解(并希望有有用的注释)。我建议您为核心部分(即 1/n、2/n、3/n...)生成补丁集(不包括驱动程序),然后首先提交。处理完这个问题后,您就可以开始推送驱动程序了。

关于git - 向邮件列表提交庞大的补丁集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064237/

相关文章:

git p4 从裸存储库提交?

c - 从自定义系统调用生成段错误

linux - net/socket.c 中带有 Printk 的 Tizen 内核镜像无法启动

memory-management - Linux内核中的内存映射

git - 将 svn 转储导出到 git 或 github

git - 使用 git 跨多台机器工作的最佳方式是什么?

git - 非交互式 GIT 使用

linux - 处理/proc/pid/fd/# 链接的创建和删除的 Linux 内核代码在哪里?

assembly - 在arm64汇编中, "adrp x0, idmap_pg_dir;"指令是什么意思?

git - 跟踪主存储库中的文件,该文件在子模块中被忽略