From: tytso@mit.edu
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
Andreas Schwab <schwab@linux-m68k.org>,
maximilian attems <max@stro.at>,
Tay Ray Chuan <rctay89@gmail.com>,
git@vger.kernel.org, Jeff King <peff@peff.net>
Subject: Re: bug in name-rev on linux-2.6 repo?
Date: Sat, 24 Apr 2010 19:04:15 -0400 [thread overview]
Message-ID: <20100424230415.GA667@thunk.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1004221119290.26046@i5.linux-foundation.org>
On Thu, Apr 22, 2010 at 11:20:34AM -0700, Linus Torvalds wrote:
> On Thu, 22 Apr 2010, Jonathan Nieder wrote:
> >
> > Hi Ted, [ nip ]
> >
> > It seems that the committer date is set to coincide with the author
> > date for ext4 patches, which breaks some assumptions by git that each
> > commit has a later or equal committer date than all parents (modulo
> > some skew).
>
> Argh. Yeah, that's just _evil_. Admittedly, git should never care, but in
> practice it does, because doing the whole graph walk can be _very_
> expensive. So git wants to think that the committer dates at least have
> _some_ real-life significance.
>
> > How is the ext4 tree generated from your patch queue?
Argh, sorry, I didn't realize git cared. I didn't realize it was
doing optimizations based on the committer dates.
I'm using guilt to generate the ext4 tree. The realize why I like
guilt is that keep the patch queue stored in git, both for revision
history purposes and because it allows other people to see and
potentially collaborate on the patch queue maintenance.
A long time ago (as in years), I put in a feature request to the guilt
maintainer that the author and committer dates should be set from the
file modtimes. This has the property that when I go back and forth
between commits, it doesn't generate excess garbage for git to deal
with, since with the author and committer dates the same, if I do a
"guilt pop" followed by a "guilt push", the commit id of HEAD stays
the same.
So far, so good, until it happens that I decide I need to rewind the
patch queue and update a patch description (maybe to add a kernel
bugzilla entry, or an tested-by, etc.) Since that touches the
modtime, you can end up with crazy date sequences such as this:
Sun Jan 24 14:34:07 2010 -0500 19f5fb7
Mon Dec 7 10:36:20 2009 -0500 d2eecb0
Fri Jan 1 01:00:21 2010 -0500 f8ec9d6
Wed Dec 23 07:45:44 2009 -0500 71f2be2
Fri Jan 22 17:40:42 2010 -0500 1f2acb6
Mon Feb 15 20:17:55 2010 -0500 15121c1
Thu Feb 4 23:58:38 2010 -0500 a1de02d
In any case, I didn't realize this causes problems, so I can add some
manual processing to make sure this doesn't happen in the future, and
I can look into hacking guilt so that enforces the invariant that the
commiter time/date must always be increasing.
Sorry about causing problems,
- Ted
next prev parent reply other threads:[~2010-04-24 23:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-21 19:58 bug in name-rev on linux-2.6 repo? maximilian attems
2010-04-22 10:54 ` Tay Ray Chuan
2010-04-22 12:14 ` maximilian attems
2010-04-22 12:40 ` Jonathan Nieder
2010-04-22 14:29 ` Andreas Schwab
2010-04-22 14:44 ` Jeff King
2010-04-22 14:54 ` Jeff King
2010-04-22 15:03 ` Jonathan Nieder
2010-04-22 15:17 ` Jeff King
2010-04-22 16:25 ` Jonathan Nieder
2010-04-22 18:20 ` Linus Torvalds
2010-04-24 23:04 ` tytso [this message]
2010-04-22 14:51 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100424230415.GA667@thunk.org \
--to=tytso@mit.edu \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=max@stro.at \
--cc=peff@peff.net \
--cc=rctay89@gmail.com \
--cc=schwab@linux-m68k.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).