summaryrefslogtreecommitdiffstatshomepage
path: root/content/9
diff options
context:
space:
mode:
Diffstat (limited to 'content/9')
-rw-r--r--content/9/index.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/content/9/index.md b/content/9/index.md
new file mode 100644
index 0000000..f22ed61
--- /dev/null
+++ b/content/9/index.md
@@ -0,0 +1,35 @@
++++
+date = 2021-07-25T16:58:29+02:00
+title = "git-am(1) and mail sorting"
+
+[taxonomies]
+tags = ["git", "TIL"]
+
+[extra]
+mentions = [8]
++++
+
+In the {{ ref(id=8, text="previous post") }} I talked about a couple of
+different ways to apply patches with `mutt(1)` or `neomutt(1)`. Turns out
+`Maildir` might not be the best format to use for `git-am(1)` because its
+files are not guaranteed to be in any specific order (per
+[spec](https://cr.yp.to/proto/maildir.html) they need only carry unique names).
+
+As `git-am(1)` does not sort its input, patches might be applied in the wrong
+order. This came up on the mailing list as well, all the way
+[back in 2013](https://public-inbox.org/git/20130301222018.GA839@WST420/).
+A fix specific to `Maildir` files created by `mutt(1)` was added in
+[`18505c3`](https://github.com/git/git/commit/18505c34237d3544729c3deed3e4f851fb672086).
+
+Sadly `neomutt(1)` changed this format 5 years ago, removing the sequence number
+that `git-am(1)` relies on in commit
+[`75b3708`](https://github.com/neomutt/neomutt/commit/75b3708edb18815935692c60bbae56d5301f8210#diff-8904141e55cf466b09a2db0df752f92a29daf093e79df61121ecd347b7631c19L1489-L1491)
+and replacing it with a call to `mutt_rand64()`. I can only assume no one is
+using `neomutt(1)` to export patches to `Maildir`, since having patches applied
+in the wrong order is a pretty significant problem.
+
+For now I recommend using the `mbox` format instead when exporting patches.
+Whilst that doesn't guarantee a specific order either, usually mail clients are
+nice enough to export mails to `mbox` in the order they are shown.
+
+The core issue remains until `git-am(1)` learns to sort mails itself.