2009-03-20 09:00:43 +03:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
test_description='Test reflog display routines'
|
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
test_expect_success 'setup' '
|
|
|
|
echo content >file &&
|
|
|
|
git add file &&
|
|
|
|
test_tick &&
|
|
|
|
git commit -m one
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
Reflog: HEAD@{0} (C O Mitter <committer@example.com>)
|
|
|
|
Reflog message: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'log -g shows reflog headers' '
|
|
|
|
git log -g -1 >tmp &&
|
|
|
|
grep ^Reflog <tmp >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
e46513e HEAD@{0}: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'oneline reflog format' '
|
|
|
|
git log -g -1 --oneline >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2011-04-01 13:20:32 +04:00
|
|
|
test_expect_success 'reflog default format' '
|
|
|
|
git reflog -1 >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
commit e46513e
|
|
|
|
Reflog: HEAD@{0} (C O Mitter <committer@example.com>)
|
|
|
|
Reflog message: commit (initial): one
|
|
|
|
Author: A U Thor <author@example.com>
|
|
|
|
|
|
|
|
one
|
|
|
|
EOF
|
2011-04-01 13:20:33 +04:00
|
|
|
test_expect_success 'override reflog default format' '
|
2011-04-01 13:20:32 +04:00
|
|
|
git reflog --format=short -1 >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2009-03-20 09:00:43 +03:00
|
|
|
cat >expect <<'EOF'
|
|
|
|
Reflog: HEAD@{Thu Apr 7 15:13:13 2005 -0700} (C O Mitter <committer@example.com>)
|
|
|
|
Reflog message: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using @{now} syntax shows reflog date (multiline)' '
|
|
|
|
git log -g -1 HEAD@{now} >tmp &&
|
|
|
|
grep ^Reflog <tmp >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
e46513e HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using @{now} syntax shows reflog date (oneline)' '
|
|
|
|
git log -g -1 --oneline HEAD@{now} >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2012-05-04 09:23:14 +04:00
|
|
|
cat >expect <<'EOF'
|
|
|
|
HEAD@{Thu Apr 7 15:13:13 2005 -0700}
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using @{now} syntax shows reflog date (format=%gd)' '
|
|
|
|
git log -g -1 --format=%gd HEAD@{now} >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2009-03-20 09:00:43 +03:00
|
|
|
cat >expect <<'EOF'
|
|
|
|
Reflog: HEAD@{1112911993 -0700} (C O Mitter <committer@example.com>)
|
|
|
|
Reflog message: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using --date= shows reflog date (multiline)' '
|
|
|
|
git log -g -1 --date=raw >tmp &&
|
|
|
|
grep ^Reflog <tmp >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
e46513e HEAD@{1112911993 -0700}: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using --date= shows reflog date (oneline)' '
|
|
|
|
git log -g -1 --oneline --date=raw >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2012-05-04 09:23:14 +04:00
|
|
|
cat >expect <<'EOF'
|
|
|
|
HEAD@{1112911993 -0700}
|
|
|
|
EOF
|
|
|
|
test_expect_success 'using --date= shows reflog date (format=%gd)' '
|
|
|
|
git log -g -1 --format=%gd --date=raw >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
Reflog: HEAD@{0} (C O Mitter <committer@example.com>)
|
|
|
|
Reflog message: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'log.date does not invoke "--date" magic (multiline)' '
|
|
|
|
test_config log.date raw &&
|
|
|
|
git log -g -1 >tmp &&
|
|
|
|
grep ^Reflog <tmp >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
e46513e HEAD@{0}: commit (initial): one
|
|
|
|
EOF
|
|
|
|
test_expect_success 'log.date does not invoke "--date" magic (oneline)' '
|
|
|
|
test_config log.date raw &&
|
|
|
|
git log -g -1 --oneline >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
|
|
|
cat >expect <<'EOF'
|
|
|
|
HEAD@{0}
|
|
|
|
EOF
|
log: respect date_mode_explicit with --format:%gd
When we show a reflog selector (e.g., via "git log -g"), we
perform some DWIM magic: while we normally show the entry's
index (e.g., HEAD@{1}), if the user has given us a date
with "--date", then we show a date-based select (e.g.,
HEAD@{yesterday}).
However, we don't want to trigger this magic if the
alternate date format we got was from the "log.date"
configuration; that is not sufficiently strong context for
us to invoke this particular magic. To fix this, commit
f4ea32f (improve reflog date/number heuristic, 2009-09-24)
introduced a "date_mode_explicit" flag in rev_info. This
flag is set only when we see a "--date" option on the
command line, and we a vanilla date to the reflog code if
the date was not explicit.
Later, commit 8f8f547 (Introduce new pretty formats %g[sdD]
for reflog information, 2009-10-19) added another way to
show selectors, and it did not respect the date_mode_explicit
flag from f4ea32f.
This patch propagates the date_mode_explicit flag to the
pretty-print code, which can then use it to pass the
appropriate date field to the reflog code. This brings the
behavior of "%gd" in line with the other formats, and means
that its output is independent of any user configuration.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-04 09:25:18 +04:00
|
|
|
test_expect_success 'log.date does not invoke "--date" magic (format=%gd)' '
|
2012-05-04 09:23:14 +04:00
|
|
|
test_config log.date raw &&
|
|
|
|
git log -g -1 --format=%gd >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2010-03-14 01:47:05 +03:00
|
|
|
: >expect
|
|
|
|
test_expect_success 'empty reflog file' '
|
|
|
|
git branch empty &&
|
|
|
|
: >.git/logs/refs/heads/empty &&
|
|
|
|
|
|
|
|
git log -g empty >actual &&
|
|
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
|
2009-03-20 09:00:43 +03:00
|
|
|
test_done
|