diff --git a/hgext/patchbomb.py b/hgext/patchbomb.py --- a/hgext/patchbomb.py +++ b/hgext/patchbomb.py @@ -509,9 +509,12 @@ def patchbomb(ui, repo, *revs, **opts): sender_addr = email.Utils.parseaddr(sender)[1] sender = mail.addressencode(ui, sender, _charsets, opts.get('test')) sendmail = None + firstpatch = None for i, (m, subj, ds) in enumerate(msgs): try: m['Message-Id'] = genmsgid(m['X-Mercurial-Node']) + if not firstpatch: + firstpatch = m['Message-Id'] except TypeError: m['Message-Id'] = genmsgid('patchbomb') if parent: @@ -519,7 +522,10 @@ def patchbomb(ui, repo, *revs, **opts): m['References'] = parent if not parent or 'X-Mercurial-Node' not in m: parent = m['Message-Id'] - m['X-Mercurial-Series-Id'] = parent + # For 0 of N messages, we won't have seen a patch yet, so + # don't try and produce an X-Mercurial-Series-Id. + if firstpatch: + m['X-Mercurial-Series-Id'] = firstpatch m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version() m['Date'] = email.Utils.formatdate(start_time[0], localtime=True) diff --git a/tests/test-patchbomb.t b/tests/test-patchbomb.t --- a/tests/test-patchbomb.t +++ b/tests/test-patchbomb.t @@ -87,7 +87,6 @@ Mercurial-patchbomb/.* -> Mercurial-patc Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:00 +0000 From: quux @@ -106,7 +105,7 @@ Mercurial-patchbomb/.* -> Mercurial-patc Message-Id: <8580ff50825a50c8f716.121@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.121@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:01 +0000 From: quux @@ -138,7 +137,7 @@ Mercurial-patchbomb/.* -> Mercurial-patc Message-Id: <97d72e5f12c7e84f8506.122@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.121@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:02:02 +0000 From: quux @@ -224,7 +223,6 @@ test bundle and description: MIME-Version: 1.0 Subject: test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:03:00 +0000 From: quux @@ -606,7 +604,6 @@ test diffstat for multiple patches: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -629,7 +626,7 @@ test diffstat for multiple patches: Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -665,7 +662,7 @@ test diffstat for multiple patches: Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -807,7 +804,6 @@ test inline for multiple patches: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 3] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -825,7 +821,7 @@ test inline for multiple patches: Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -863,7 +859,7 @@ test inline for multiple patches: Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -901,7 +897,7 @@ test inline for multiple patches: Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:03 +0000 From: quux @@ -1140,7 +1136,6 @@ test attach for multiple patches: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 3] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1158,7 +1153,7 @@ test attach for multiple patches: Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1205,7 +1200,7 @@ test attach for multiple patches: Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -1252,7 +1247,7 @@ test attach for multiple patches: Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:03 +0000 From: quux @@ -1321,7 +1316,6 @@ test intro for single patch: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 1] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1340,7 +1334,7 @@ test intro for single patch: Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1375,7 +1369,6 @@ test --desc without --intro for a single Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 1] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1395,7 +1388,7 @@ test --desc without --intro for a single Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1432,7 +1425,6 @@ test intro for multiple patches: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1451,7 +1443,7 @@ test intro for multiple patches: Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1483,7 +1475,7 @@ test intro for multiple patches: Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -1642,7 +1634,6 @@ test inline for multiple named/unnamed p Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1660,7 +1651,7 @@ test inline for multiple named/unnamed p Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1698,7 +1689,7 @@ test inline for multiple named/unnamed p Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -1745,7 +1736,7 @@ test inreplyto: Message-Id: <7aead2484924c445ad8c.60@*> (glob) In-Reply-To: References: - X-Mercurial-Series-Id: + X-Mercurial-Series-Id: <7aead2484924c445ad8c.60@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1788,7 +1779,7 @@ no intro message in non-interactive mode Message-Id: <8580ff50825a50c8f716.60@*> (glob) In-Reply-To: References: - X-Mercurial-Series-Id: + X-Mercurial-Series-Id: <8580ff50825a50c8f716.60@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1820,7 +1811,7 @@ no intro message in non-interactive mode Message-Id: <97d72e5f12c7e84f8506.61@*> (glob) In-Reply-To: References: - X-Mercurial-Series-Id: + X-Mercurial-Series-Id: <8580ff50825a50c8f716.60@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1860,7 +1851,6 @@ no intro message in non-interactive mode Message-Id: (glob) In-Reply-To: References: - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -1879,7 +1869,7 @@ no intro message in non-interactive mode Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -1911,7 +1901,7 @@ no intro message in non-interactive mode Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -1988,7 +1978,6 @@ test single flag for multiple patches (a Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2 fooFlag] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -2007,7 +1996,7 @@ test single flag for multiple patches (a Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -2039,7 +2028,7 @@ test single flag for multiple patches (a Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -2115,7 +2104,6 @@ test multiple flags for multiple patches Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 2 fooFlag barFlag] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:00 +0000 From: quux @@ -2134,7 +2122,7 @@ test multiple flags for multiple patches Message-Id: <8580ff50825a50c8f716.61@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:01 +0000 From: quux @@ -2166,7 +2154,7 @@ test multiple flags for multiple patches Message-Id: <97d72e5f12c7e84f8506.62@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: <8580ff50825a50c8f716.61@*> (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Thu, 01 Jan 1970 00:01:02 +0000 From: quux @@ -2326,7 +2314,6 @@ test outgoing: Content-Transfer-Encoding: 7bit Subject: [PATCH 0 of 6] test Message-Id: (glob) - X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:00 +0000 From: test @@ -2344,7 +2331,7 @@ test outgoing: Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:01 +0000 From: test @@ -2375,7 +2362,7 @@ test outgoing: Message-Id: <909a00e13e9d78b575ae.315532862@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:02 +0000 From: test @@ -2413,7 +2400,7 @@ test outgoing: Message-Id: (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:03 +0000 From: test @@ -2460,7 +2447,7 @@ test outgoing: Message-Id: <240fb913fc1b7ff15ddb.315532864@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:04 +0000 From: test @@ -2491,7 +2478,7 @@ test outgoing: Message-Id: <5d5ef15dfe5e7bd3a4ee.315532865@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:05 +0000 From: test @@ -2523,7 +2510,7 @@ test outgoing: Message-Id: <2f9fa9b998c5fe3ac2bd.315532866@*> (glob) In-Reply-To: (glob) References: (glob) - X-Mercurial-Series-Id: (glob) + X-Mercurial-Series-Id: (glob) User-Agent: Mercurial-patchbomb/* (glob) Date: Tue, 01 Jan 1980 00:01:06 +0000 From: test