-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
make oneline reflog dates more consistent with multiline format
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>
- Loading branch information
Jeff King
authored and
Junio C Hamano
committed
Mar 20, 2009
1 parent
570ccad
commit cd43712
Showing
3 changed files
with
78 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |