+git-update-ref $m $D
+cat >.git/logs/$m <<EOF
+$C $A $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150320 -0500
+$A $B $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150380 -0500
+$F $Z $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150680 -0500
+$Z $E $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150980 -0500
+EOF
+
+ed="Thu, 26 May 2005 18:32:00 -0500"
+gd="Thu, 26 May 2005 18:33:00 -0500"
+ld="Thu, 26 May 2005 18:43:00 -0500"
+test_expect_success \
+ 'Query "master@May 25 2005" (before history)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@May 25 2005" >o 2>e &&
+ test $C = $(cat o) &&
+ test "warning: Log .git/logs/$m only goes back to $ed." = "$(cat e)"'
+test_expect_success \
+ "Query master@2005-05-25 (before history)" \
+ 'rm -f o e
+ git-rev-parse --verify master@2005-05-25 >o 2>e &&
+ test $C = $(cat o) &&
+ echo test "warning: Log .git/logs/$m only goes back to $ed." = "$(cat e)"'
+test_expect_success \
+ 'Query "master@May 26 2005 23:31:59" (1 second before history)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@May 26 2005 23:31:59" >o 2>e &&
+ test $C = $(cat o) &&
+ test "warning: Log .git/logs/$m only goes back to $ed." = "$(cat e)"'
+test_expect_success \
+ 'Query "master@May 26 2005 23:32:00" (exactly history start)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@May 26 2005 23:32:00" >o 2>e &&
+ test $A = $(cat o) &&
+ test "" = "$(cat e)"'
+test_expect_success \
+ 'Query "master@2005-05-26 23:33:01" (middle of history with gap)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@2005-05-26 23:33:01" >o 2>e &&
+ test $B = $(cat o) &&
+ test "warning: Log .git/logs/$m has gap after $gd." = "$(cat e)"'
+test_expect_success \
+ 'Query "master@2005-05-26 23:33:01" (middle of history)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@2005-05-26 23:38:00" >o 2>e &&
+ test $Z = $(cat o) &&
+ test "" = "$(cat e)"'
+test_expect_success \
+ 'Query "master@2005-05-26 23:43:00" (exact end of history)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@2005-05-26 23:43:00" >o 2>e &&
+ test $E = $(cat o) &&
+ test "" = "$(cat e)"'
+test_expect_success \
+ 'Query "master@2005-05-28" (past end of history)' \
+ 'rm -f o e
+ git-rev-parse --verify "master@2005-05-28" >o 2>e &&
+ test $D = $(cat o) &&
+ test "warning: Log .git/logs/$m unexpectedly ended on $ld." = "$(cat e)"'
+