* format-patch: "magic" mbox timestamp
@ 2020-11-10 21:54 Brandon Richardson
2020-11-10 23:12 ` Johannes Schindelin
2020-11-10 23:13 ` Junio C Hamano
0 siblings, 2 replies; 4+ messages in thread
From: Brandon Richardson @ 2020-11-10 21:54 UTC (permalink / raw)
To: Git Mailing List; +Cc: Junio C Hamano, Johannes.Schindelin
Hi all,
After submitting a patch internally within our organization today, I
was looking through the `format-patch` output and was curious to see
the strange timestamp on the "From" line. At first glance I thought
the parent commit timestamp might have been off, but that wasn't the
case. I thought it might be a bug but quickly noticed the fixed
timestamp string in `log-tree`.
Reading through the various revisions of `log-tree.c` didn't answer
many questions either, until I turned to the docs and read:
> The patch produced by git format-patch is in UNIX mailbox format, with a fixed "magic" time stamp to indicate that the file is output from format-patch rather than a real mailbox [...]
I find this pretty interesting, and would like to hear more from those
that introduced change. It looks like this was first introduced in
3eefc18917 (Tentative built-in format-patch., 2006-04-18), albeit with
a different "magic" timestamp, and then changed to its current
timestamp value in 698ce6f87e (fmt-patch: Support --attach,
2006-05-20).
Please correct me if I'm wrong, but I'm assuming the "UNIX mailbox
format" referenced in the docs refers to the mbox database format
described in appendix A of RFC-4155. If so, since we use a commit id
in place of the sender email address, would that itself be sufficient
to indicate that the output isn't from a real mailbox? A commit id
will never match the addr-spec in RFC-2822, so I figure that anyone
looking at `format-patch` output could safely assume that it did not
originate from a mailbox.
I could see this as a good opportunity to use a more relevant
timestamp, perhaps the commit timestamp of the first patch in the
series.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: format-patch: "magic" mbox timestamp 2020-11-10 21:54 format-patch: "magic" mbox timestamp Brandon Richardson @ 2020-11-10 23:12 ` Johannes Schindelin 2020-11-10 23:22 ` Junio C Hamano 2020-11-10 23:13 ` Junio C Hamano 1 sibling, 1 reply; 4+ messages in thread From: Johannes Schindelin @ 2020-11-10 23:12 UTC (permalink / raw) To: Brandon Richardson; +Cc: Git Mailing List, Junio C Hamano Hi Brandon, On Tue, 10 Nov 2020, Brandon Richardson wrote: > After submitting a patch internally within our organization today, I > was looking through the `format-patch` output and was curious to see > the strange timestamp on the "From" line. At first glance I thought > the parent commit timestamp might have been off, but that wasn't the > case. I thought it might be a bug but quickly noticed the fixed > timestamp string in `log-tree`. > > Reading through the various revisions of `log-tree.c` didn't answer > many questions either, until I turned to the docs and read: > > > The patch produced by git format-patch is in UNIX mailbox format, with a fixed "magic" time stamp to indicate that the file is output from format-patch rather than a real mailbox [...] > > I find this pretty interesting, and would like to hear more from those > that introduced change. It looks like this was first introduced in > 3eefc18917 (Tentative built-in format-patch., 2006-04-18), albeit with > a different "magic" timestamp, and then changed to its current > timestamp value in 698ce6f87e (fmt-patch: Support --attach, > 2006-05-20). > > Please correct me if I'm wrong, but I'm assuming the "UNIX mailbox > format" referenced in the docs refers to the mbox database format > described in appendix A of RFC-4155. If so, since we use a commit id > in place of the sender email address, would that itself be sufficient > to indicate that the output isn't from a real mailbox? A commit id > will never match the addr-spec in RFC-2822, so I figure that anyone > looking at `format-patch` output could safely assume that it did not > originate from a mailbox. > > I could see this as a good opportunity to use a more relevant > timestamp, perhaps the commit timestamp of the first patch in the > series. An interesting hike down memory lane. As to the explanation for the latter change ("fmt-patch: Support --attach"), here is your answer: https://lore.kernel.org/git/Pine.LNX.4.63.0605201904320.31887@wbgn013.biozentrum.uni-wuerzburg.de/ On Sat, 20 May 2006, Jakub Narebski wrote: > Johannes Schindelin wrote: > > > - printf("From %s Thu Apr 7 15:13:13 2005\n", > > - sha1_to_hex(commit->object.sha1)); > > + printf("From %s Mon Sep 17 00:00:00 2001\n", sha1); > > What's with the date? Does not matter. This is not part of the mail header (the date is displayed as a "Date:" line). I only changed the "From " line (note the missing ":") to match the output from git-format-patch.sh. As to "Tentative built-in format-patch", I can only _guess_ that the timestamp was chosen to be identical to the first ever Git commit's timestamp: e83c5163316 (Initial revision of "git", the information manager from hell, 2005-04-07). The original magic timestamp, however, was the one I reintroduced, and as you can see from the part I quoted above, I only imitated the original script. I do remember, even if it has been a lifetime ago, that I wondered what kind of special date September 17th could have been for Junio, but I felt it might have been too personal a question. That timestamp was introduced into Git's source code in 5c2c972f474 ([PATCH] format-patch: --mbox and --check., 2005-07-22), but the commit message is also quite mum about the motivation between that particular timestamp. Ciao, Johannes ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: format-patch: "magic" mbox timestamp 2020-11-10 23:12 ` Johannes Schindelin @ 2020-11-10 23:22 ` Junio C Hamano 0 siblings, 0 replies; 4+ messages in thread From: Junio C Hamano @ 2020-11-10 23:22 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Brandon Richardson, Git Mailing List Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > The original magic timestamp, however, was the one I reintroduced, and as > you can see from the part I quoted above, I only imitated the original > script. That's almost a lifetime ago that I totally forgot that it was original a shell script. It indeed does this: + case "$mbox" in + t) + echo 'From nobody Mon Sep 17 00:00:00 2001' ;# UNIX "From" line + mailScript="$mailScript"' + s|^|Subject: [PATCH'"$num"'] |' + ;; which clearly shows that "nobody" was chosen to mimic a real mailbox (i.e. unlike what Brandon said in the other message, the <mailbox> may not have "@" <domain> after <local-part>). In any case, I think what's more important is after 15 years, if any implementation of the /etc/magic database actually take advantage of that magic date as the "magic" signal to identify a format-patch output. Despite the wishes of original authors and designers of Git and its format-patch output, perhaps no /etc/magic author noticed it, in which case it is safe to use other randomly picked dates, or the timestamp of underlying commits. Otherwise, changing the "magic" timestamp would introduce a needless regression. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: format-patch: "magic" mbox timestamp 2020-11-10 21:54 format-patch: "magic" mbox timestamp Brandon Richardson 2020-11-10 23:12 ` Johannes Schindelin @ 2020-11-10 23:13 ` Junio C Hamano 1 sibling, 0 replies; 4+ messages in thread From: Junio C Hamano @ 2020-11-10 23:13 UTC (permalink / raw) To: Brandon Richardson; +Cc: Git Mailing List, Johannes.Schindelin Brandon Richardson <brandon1024.br@gmail.com> writes: > Please correct me if I'm wrong, but I'm assuming the "UNIX mailbox > format" referenced in the docs refers to the mbox database format > described in appendix A of RFC-4155. If so, since we use a commit id > in place of the sender email address, would that itself be sufficient > to indicate that the output isn't from a real mailbox? A commit id > will never match the addr-spec in RFC-2822, so I figure that anyone > looking at `format-patch` output could safely assume that it did not > originate from a mailbox. I vaguely recall that it was possible for the "From" line that begins each message in a UNIX mbox had a local sender without "@", so it would be a bit wider than addr-spec and a string of raw hexadecimal digits would not sufficiently "strange" enough to serve as a "magic" identifier. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-11-10 23:23 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-10 21:54 format-patch: "magic" mbox timestamp Brandon Richardson 2020-11-10 23:12 ` Johannes Schindelin 2020-11-10 23:22 ` Junio C Hamano 2020-11-10 23:13 ` Junio C Hamano
Code repositories for project(s) associated with this public inbox https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).