什么是从Thunderbird应用git一系列补丁的最简单方法?

11

我有一封带有N个附件的邮件,格式为000X-xxxx.patch。我想将所有补丁都应用到我的主分支上,但我希望所有提交都是分开的,就像原始作者提交它们一样,当然包括提交信息。

方法1:打开邮件,点击“另存为”,保存为xxx.eml文件,然后:

git am xxx.eml

结果是可以的,但所有内容都压缩成了一个提交。不可接受。

方法2:将所有附件保存在一个目录中,然后:

git am 000*.patch
Patch format detection failed.
git apply 000*.patch
(does nothing)

这个不起作用,有什么建议吗?谢谢。


在以下链接中提到了 mbox 导出扩展:https://support.mozilla.org/en-US/questions/1131636 | https://addons.mozilla.org/en-GB/thunderbird/addon/importexporttools/,但它似乎不兼容当前的 Thunderbird 52.6.0 版本。 - Ciro Santilli OurBigBook.com
2个回答

2
通过阅读git am手册,看起来提交消息是由主题行和消息正文组成的,这意味着您将无法重现原始的提交序列(也就是说,没有办法恢复作者用于每个单独提交的提交消息)...虽然根据手册,git am旨在使用内联补丁而不是作为附件包含的补丁,所以我很惊讶它甚至在方法1中都能做正确的事情。
如果您愿意放弃提交消息,则应该能够将补丁保存到单独的文件中,然后按顺序应用它们。

嗯,但是git apply对我没有任何作用。 - lzap
好的,git apply和git am都可以用于单独的附件。我只是在第一行开头加了一个“>”。所以Thunderbird不知何故把它搞砸了。问题解决了! - lzap

0

据我所知,Thunderbird没有一个明智的方法可以同时将多个电子邮件保存为单独的文件。您可以逐个保存它们,但对于小的补丁集,这样做是可行的。

具有讽刺意味的是,我无意中发现了最简单的方法,即向不关注邮件列表的同事发送Linux补丁。将它们作为附件转发给自己。

  1. 选择所有补丁电子邮件
  2. 将它们作为附件转发给自己
  3. 将所有附件保存到适当的目录中
  4. 应用这些电子邮件。例如:"git am my_patch_dir/[PATCH -v5*"

至少Thunderbird 52.1.0似乎能够保存多封电子邮件:只需标记多个电子邮件,然后在上下文菜单中选择“另存为...”。这样可以选择一个文件夹,将所有标记的电子邮件保存到该文件夹中。 - falstaff
除非有所更改,否则在多个电子邮件上使用“另存为”会导致一个包含所有电子邮件的大文件,这个大文件与 git am 完全不兼容,据我所知。 - Joshua Clayton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接