Browse Source
The multiline reflog format (e.g., as shown by "git log -g") will show HEAD@{<date>} rather than HEAD@{<count>} in two situations: 1. If the user gave branch@{<date>} syntax to specify the reflog 2. If the user gave a --date=<format> specifier It uses the "normal" date format in case 1, and the user-specified format in case 2. The oneline reflog format (e.g., "git reflog show" or "git log -g --oneline") will show the date in the same two circumstances. However, it _always_ shows the date as a relative date, and it always ignores the timezone. In case 2, it seems ridiculous to trigger the date but use a format totally different from what the user requested. For case 1, it is arguable that the user might want to see the relative date by default; however, the multiline version shows the normal format. This patch does three things: - refactors the "relative_date" parameter to show_reflog_message to be an actual date_mode enum, since this is how it is used (it is passed to show_date) - uses the passed date_mode parameter in the oneline format (making it consistent with the multiline format) - does not ignore the timezone parameter in oneline mode Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Jeff King
16 years ago
committed by
Junio C Hamano
3 changed files with 78 additions and 6 deletions
@ -1,11 +1,14 @@
@@ -1,11 +1,14 @@
|
||||
#ifndef REFLOG_WALK_H |
||||
#define REFLOG_WALK_H |
||||
|
||||
#include "cache.h" |
||||
|
||||
extern void init_reflog_walk(struct reflog_walk_info** info); |
||||
extern int add_reflog_for_walk(struct reflog_walk_info *info, |
||||
struct commit *commit, const char *name); |
||||
extern void fake_reflog_parent(struct reflog_walk_info *info, |
||||
struct commit *commit); |
||||
extern void show_reflog_message(struct reflog_walk_info *info, int, int); |
||||
extern void show_reflog_message(struct reflog_walk_info *info, int, |
||||
enum date_mode); |
||||
|
||||
#endif |
||||
|
@ -0,0 +1,67 @@
@@ -0,0 +1,67 @@
|
||||
#!/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 |
||||
' |
||||
|
||||
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 |
||||
' |
||||
|
||||
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 |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue