dir.c: fix missing dir invalidation in untracked code
[gitweb.git] / t / lib-t6000.sh
index 102d5678151d5b1fcca731724efb2bd1ad0647d6..3f2d873fec9ed9e98b787cd708cd9e8e816e7573 100644 (file)
@@ -34,7 +34,7 @@ save_tag () {
        mv sed.script.tmp sed.script
 }
 
-# Replace unhelpful sha1 hashses with their symbolic equivalents
+# Replace unhelpful sha1 hashes with their symbolic equivalents
 entag () {
        sed -f sed.script
 }
@@ -64,13 +64,30 @@ commit_date () {
        sed -n "s/^committer .*> \([0-9]*\) .*/\1/p"
 }
 
+# Assign the value of fake date to a variable, but
+# allow fairly common "1971-08-16 00:00" to be omittd
+assign_fake_date () {
+       case "$2" in
+       ??:??:??)       eval "$1='1971-08-16 $2'" ;;
+       ??:??)          eval "$1='1971-08-16 00:$2'" ;;
+       ??)             eval "$1='1971-08-16 00:00:$2'" ;;
+       *)              eval "$1='$2'" ;;
+       esac
+}
+
 on_committer_date () {
-       _date=$1
-       shift 1
-       GIT_COMMITTER_DATE="$_date"
+       assign_fake_date GIT_COMMITTER_DATE "$1"
        export GIT_COMMITTER_DATE
+       shift 1
+       "$@"
+}
+
+on_dates () {
+       assign_fake_date GIT_COMMITTER_DATE "$1"
+       assign_fake_date GIT_AUTHOR_DATE "$2"
+       export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
+       shift 2
        "$@"
-       unset GIT_COMMITTER_DATE
 }
 
 # Execute a command and suppress any error output.