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.
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