commit: accept more date formats for "--date"
commit14ac2864dcd566a025e449ab9db6b5dc57744a32
authorJeff King <peff@peff.net>
Fri, 2 May 2014 01:12:42 +0000 (1 21:12 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 2 May 2014 21:15:22 +0000 (2 14:15 -0700)
tree59b940b6d6c267cf8cd80069d530f15175051686
parentb7242b8c9e4b3c57a07c2a76d0337389605aadcc
commit: accept more date formats for "--date"

Right now we pass off the string found by "--date" straight
to the fmt_ident function, which will use our strict
parse_date to normalize it. However, this means obvious
things like "--date=now" or "--date=2.days.ago" will not
work.

Instead, let's fallback to the approxidate function to
handle this for us. Note that we must try parse_date
ourselves first, even though approxidate will try strict
parsing itself. The reason is that approxidate throws away
any timezone information it sees from the strict parsing,
and we want to preserve it. So asking for:

  git commit --date="@1234567890 -0700"

continues to set the date in -0700, regardless of what the
local timezone is.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c
t/t7501-commit.sh