[RFC 0/5] Date Mode: Add --time-zone; deprecate --date=local
From: Michael Witten <hidden>
Date: 2016-06-15 22:51:04
One of the possible values for a date format is `local', which
specifies that a date should be output as though the date format
were instead `default' but in terms of the user's time zone
instead of the time zone stored by git; clearly, then, `local'
does not really provide just another format, but rather the
combination of 2 specifications:
* A format for the date (`default')
* A time zone in which to interpret the date (`local', if you will)
Interestingly, the existing documentation suggests that the original
purpose of the `--date' option was to specify the time zone rather
than a format:
$ git grep -hC1 '`--date=local`\|`--date=default`' \
> 6ceb270ce6f65cf4bc2a22830f96e0cc838b3fec \
> -- Documentation/rev-list-options.txt
+
`--date=local` shows timestamps in user's local timezone.
+
--
+
`--date=default` shows timestamps in the original timezone
(either committer's or author's).
This patch series reimplements the original purpose of `--date' by allowing
the time zone mode to be specified independently of the date format
(see the commit message for [2] and the documentation provided by [3]):
[0] Light refactoring of date infrastructure
[1] Pretty Print: show tz when using DATE_LOCAL
[2] Date Mode: Implementation
[3] Date Mode: Documentation
[4] Date Mode: Tests
The date format `local' has thus been deprecated, though it is still
supported (with a warning on stderr).
These patches apply cleanly to the current tip of Junio's `next' branch:
commit 63e4ee5f87eede11d1377370c385c26c5b90c6e7
Merge: 359ea0b 6ceb270
Author: Junio C Hamano [off-list ref]
Date: Tue Apr 19 11:51:25 2011 -0700
Merge branch 'master' into next
* master:
Git 1.7.5-rc3
Git 1.7.4.5
git-svn.txt: Document --mergeinfo
and it would appear that `make test' runs successfully (including the
extensive testing that I have implemented for date mode features, both
old and new).
There are some whitespace warnings (a la `git diff --check'), but I
have reviewed them and personally approve of them; if you think that
appraisal is incorrect, then you don't know what you're talking about :-P
Sincerely,
Michael Witten
Documentation/blame-options.txt | 9 +--
Documentation/config.txt | 32 ++++---
Documentation/date-mode-docs.txt | 87 +++++++++++++++++++
Documentation/git-for-each-ref.txt | 19 ++++-
Documentation/git-log.txt | 43 ---------
Documentation/git-rev-list.txt | 4 +-
Documentation/git-svn.txt | 2 +-
Documentation/rev-list-options.txt | 28 +------
archive.c | 2 +-
builtin/blame.c | 24 +++---
builtin/cat-file.c | 3 +-
builtin/commit.c | 2 +-
builtin/for-each-ref.c | 65 ++++++++++----
builtin/log.c | 17 ++--
builtin/shortlog.c | 2 +-
builtin/show-branch.c | 3 +-
cache.h | 41 ++++++++-
commit.h | 4 +-
date.c | 84 ++++++++++++++++---
fast-import.c | 4 +-
http-backend.c | 3 +-
log-tree.c | 10 ++-
pretty.c | 18 +++--
reflog-walk.c | 6 +-
reflog-walk.h | 4 +-
refs.c | 6 +-
revision.c | 11 ++-
revision.h | 4 +-
sha1_name.c | 5 +-
submodule.c | 2 +-
t/date-modes-lib.sh | 168 ++++++++++++++++++++++++++++++++++++
t/date-modes-permutator.perl | 94 ++++++++++++++++++++
t/t4202-log.sh | 3 +
t/t6300-for-each-ref.sh | 15 +++-
t/t8002-blame.sh | 9 ++
test-date.c | 11 ++-
36 files changed, 654 insertions(+), 190 deletions(-)
create mode 100644 Documentation/date-mode-docs.txt
create mode 100755 t/date-modes-lib.sh
create mode 100755 t/date-modes-permutator.perl
--
1.7.4.18.g68fe8