summaryrefslogtreecommitdiff
path: root/date.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2016-07-22 19:51:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-07-27 21:15:51 (GMT)
commit642833db78aa5d7a72677aa9a9b013fb9a880f19 (patch)
tree78867445ed1858ddfe222521fbeba775c9d545e2 /date.c
parent1a2a1e8eb93de2b89a32a52980ec7614fe9d154c (diff)
downloadgit-642833db78aa5d7a72677aa9a9b013fb9a880f19.zip
git-642833db78aa5d7a72677aa9a9b013fb9a880f19.tar.gz
git-642833db78aa5d7a72677aa9a9b013fb9a880f19.tar.bz2
date: add "unix" format
We already have "--date=raw", which is a Unix epoch timestamp plus a contextual timezone (either the author's or the local). But one may not care about the timezone and just want the epoch timestamp by itself. It's not hard to parse the two apart, but if you are using a pretty-print format, you may want git to show the "finished" form that the user will see. We can accomodate this by adding a new date format, "unix", which is basically "raw" without the timezone. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'date.c')
-rw-r--r--date.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/date.c b/date.c
index 4c7aa9b..a996331 100644
--- a/date.c
+++ b/date.c
@@ -177,6 +177,12 @@ const char *show_date(unsigned long time, int tz, const struct date_mode *mode)
struct tm *tm;
static struct strbuf timebuf = STRBUF_INIT;
+ if (mode->type == DATE_UNIX) {
+ strbuf_reset(&timebuf);
+ strbuf_addf(&timebuf, "%lu", time);
+ return timebuf.buf;
+ }
+
if (mode->local)
tz = local_tzoffset(time);
@@ -792,6 +798,8 @@ static enum date_mode_type parse_date_type(const char *format, const char **end)
return DATE_NORMAL;
if (skip_prefix(format, "raw", end))
return DATE_RAW;
+ if (skip_prefix(format, "unix", end))
+ return DATE_UNIX;
if (skip_prefix(format, "format", end))
return DATE_STRFTIME;