2013-11-21 49 views
1

使用git send-email发送修补程序组十分方便。但是,一旦我收到一套补丁,如何应用它们?特别是,如何按正确的顺序应用它们?如何使用git应用一系列修补程序

如果我将它们保存在单独的Maildir中,并且我将此Maildir的参数设置为git am,则修补程序不会以正确的顺序应用。

目前,我在git am命令行上单独指定每个文件,但它很单调。

+0

你在Windows吗? – krlmlr

+0

'git am'按排序顺序应用maildir条目,但排序非常简单,其中“12”在“1”之后但在“2”之前:1,10,11,12,13,2,3, 4 ...在内部固定'git am'的不足之处在于确保“short”名称具有前导0,因此排序为01,02,03,...,10,11,12。或者,您可以将所有单数位补丁放在一个目录中,2位数补丁放在另一个目录中。 – torek

+1

@torek:奇怪。在我的系统中,当我使用'format-patch'时,所有的修补程序都有一个四位前缀和前导零以避免此问题。 “发送电子邮件”与此不同吗? – krlmlr

回答

0

One解决方案将是:

git am $(perl -e 'my @r = sort { `grep Subject: $a` cmp `grep Subject: $b` } @ARGV; print "@r"' Maildir/new/*) 

我强烈不喜欢这个技巧。有人有更好的主意吗?