Re: [PATCH] guilt: Make sure the commit time is increasing
- From
- jeffpc@josefsipek.net <jeffpc@josefsipek.net>
- Date
- Jul 5, 2010, 02:59 UTC
- Message-ID
- <20100705025900.GQ22659@josefsipek.net>
- In-Reply-To
- <1278296639-25024-1-git-send-email-tytso@mit.edu>
On Sun, Jul 04, 2010 at 10:23:59PM -0400, Theodore Ts'o wrote:
Show 5 quoted lines
> Git has various algorithms, most notably in git rev-list, git > name-rev, and others, which depend on the commit time increasing. We > want to keep the commit time the same as much as possible, but if > necessary, adjust the time stamps of the patch files to obey this > constraint.
Am I understanding this right? You want the timestamps to be monotonically increasing? Is the +60 the most obvious choice?
Can I get an example of how git can get confused?
Josef 'Jeff' Sipek.
Show 26 quoted lines
> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> > --- > guilt | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/guilt b/guilt > index b6e2a6c..2371e98 100755 > --- a/guilt > +++ b/guilt > @@ -535,6 +535,13 @@ commit() > export GIT_AUTHOR_EMAIL="`echo $author_str | sed -e 's/[^<]*//'`" > fi > > + ct=$(git log -1 --pretty=%ct) > + if [ $ct -gt $(stat -c %Y "$p") ]; then > + echo "Warning time went backwards, adjusting mod time of" \ > + $(basename "$p") > + touch -d @$(expr $ct + 60) "$p" || touch "$p" > + fi > + > # must strip nano-second part otherwise git gets very > # confused, and makes up strange timestamps from the past > # (chances are it decides to interpret it as a unix > -- > 1.7.0.4 >
-- UNIX is user-friendly ... it's just selective about who its friends are