From: jeffpc@josefsipek.net Date: Mon, 05 Jul 2010 02:59:00 GMT Subject: Re: [PATCH] guilt: Make sure the commit time is increasing 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: > 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. > Signed-off-by: "Theodore Ts'o" > --- > 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