From patchwork Tue Jan 29 03:50:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Stephen P. Smith" X-Patchwork-Id: 10785363 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E46A491E for ; Tue, 29 Jan 2019 03:50:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D52142B5BD for ; Tue, 29 Jan 2019 03:50:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C98402B5C3; Tue, 29 Jan 2019 03:50:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 75F252B5BD for ; Tue, 29 Jan 2019 03:50:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727075AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmfepo103.cox.net ([68.230.241.145]:43336 "EHLO fed1rmfepo103.cox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726988AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmimpo209.cox.net ([68.230.241.160]) by fed1rmfepo103.cox.net (InterMail vM.8.01.05.28 201-2260-151-171-20160122) with ESMTP id <20190129035017.GXIG4136.fed1rmfepo103.cox.net@fed1rmimpo209.cox.net> for ; Mon, 28 Jan 2019 22:50:17 -0500 Received: from thunderbird.smith.home (localhost [127.0.0.1]) by thunderbird.smith.home (Postfix) with ESMTP id DA007B81314; Mon, 28 Jan 2019 20:50:16 -0700 (MST) X-CT-Class: Clean X-CT-Score: 0.00 X-CT-RefID: str=0001.0A090207.5C4FCD79.0040,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 X-CT-Spam: 0 X-Authority-Analysis: v=2.3 cv=Q7RmHL+a c=1 sm=1 tr=0 a=BlDZPKRk22kUaIvSBqmi8w==:117 a=BlDZPKRk22kUaIvSBqmi8w==:17 a=3JhidrIBZZsA:10 a=WDhBSedXqNQA:10 a=kviXuzpPAAAA:8 a=PzJFpfYIsgoufMCHn0sA:9 a=qrIFiuKZe2vaD64auk6j:22 X-CM-Score: 0.00 Authentication-Results: cox.net; auth=pass (LOGIN) smtp.auth=ischis2@cox.net From: "Stephen P. Smith" To: git@vger.kernel.org Cc: Linus Torvalds , Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= , Jeff King , Philip Oakley , Johannes Sixt , SZEDER =?utf-8?b?R8OhYm9y?= Subject: [PATCH v4 2/5] Replace the proposed 'auto' mode with 'auto:' Date: Mon, 28 Jan 2019 20:50:13 -0700 Message-Id: <20190129035016.25981-3-ischis2@cox.net> X-Mailer: git-send-email 2.20.1.2.gb21ebb671b In-Reply-To: <20190129035016.25981-1-ischis2@cox.net> References: <20190121053112.4736-1-ischis2@cox.net> <20190129035016.25981-1-ischis2@cox.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP In addition to adding the 'human' format, the patch added the auto keyword which could be used in the config file as an alternate way to specify the human format. Removing 'auto' cleans up the 'human' format interface. Added the ability to specify mode 'foo' if the pager is being used by using auto:foo syntax. Therefore, 'auto:human' date mode defaults to human if we're using the pager. So you can do git config --add log.date auto:human and your "git log" commands will show the human-legible format unless you're scripting things. Signed-off-by: Stephen P. Smith --- date.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/date.c b/date.c index a8d50eb206..43c3a84e25 100644 --- a/date.c +++ b/date.c @@ -883,11 +883,6 @@ int parse_date(const char *date, struct strbuf *result) return 0; } -static int auto_date_style(void) -{ - return (isatty(1) || pager_in_use()) ? DATE_HUMAN : DATE_NORMAL; -} - static enum date_mode_type parse_date_type(const char *format, const char **end) { if (skip_prefix(format, "relative", end)) @@ -907,8 +902,6 @@ static enum date_mode_type parse_date_type(const char *format, const char **end) return DATE_NORMAL; if (skip_prefix(format, "human", end)) return DATE_HUMAN; - if (skip_prefix(format, "auto", end)) - return auto_date_style(); if (skip_prefix(format, "raw", end)) return DATE_RAW; if (skip_prefix(format, "unix", end)) @@ -923,6 +916,14 @@ void parse_date_format(const char *format, struct date_mode *mode) { const char *p; + /* "auto:foo" is "if tty/pager, then foo, otherwise normal" */ + if (skip_prefix(format, "auto:", &p)) { + if (isatty(1) || pager_in_use()) + format = p; + else + format = "default"; + } + /* historical alias */ if (!strcmp(format, "local")) format = "default-local"; From patchwork Tue Jan 29 03:50:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Stephen P. Smith" X-Patchwork-Id: 10785361 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CC24113B5 for ; Tue, 29 Jan 2019 03:50:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BD7282B5BD for ; Tue, 29 Jan 2019 03:50:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B1DC12B5C3; Tue, 29 Jan 2019 03:50:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 579452B5BD for ; Tue, 29 Jan 2019 03:50:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727120AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmfepo101.cox.net ([68.230.241.143]:59741 "EHLO fed1rmfepo101.cox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726971AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmimpo306.cox.net ([68.230.241.174]) by fed1rmfepo101.cox.net (InterMail vM.8.01.05.28 201-2260-151-171-20160122) with ESMTP id <20190129035018.XBWN4064.fed1rmfepo101.cox.net@fed1rmimpo306.cox.net> for ; Mon, 28 Jan 2019 22:50:18 -0500 Received: from thunderbird.smith.home (localhost [127.0.0.1]) by thunderbird.smith.home (Postfix) with ESMTP id F0994B816D2; Mon, 28 Jan 2019 20:50:16 -0700 (MST) X-CT-Class: Clean X-CT-Score: 0.00 X-CT-RefID: str=0001.0A090204.5C4FCD79.004B,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 X-CT-Spam: 0 X-Authority-Analysis: v=2.3 cv=RaQk9Glv c=1 sm=1 tr=0 a=BlDZPKRk22kUaIvSBqmi8w==:117 a=BlDZPKRk22kUaIvSBqmi8w==:17 a=3JhidrIBZZsA:10 a=kviXuzpPAAAA:8 a=ZRg8tKC3IdvpwZkzal4A:9 a=qrIFiuKZe2vaD64auk6j:22 X-CM-Score: 0.00 Authentication-Results: cox.net; auth=pass (LOGIN) smtp.auth=ischis2@cox.net From: "Stephen P. Smith" To: git@vger.kernel.org Cc: Linus Torvalds , Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= , Jeff King , Philip Oakley , Johannes Sixt , SZEDER =?utf-8?b?R8OhYm9y?= Subject: [PATCH v4 3/5] Add 'human' date format documentation Date: Mon, 28 Jan 2019 20:50:14 -0700 Message-Id: <20190129035016.25981-4-ischis2@cox.net> X-Mailer: git-send-email 2.20.1.2.gb21ebb671b In-Reply-To: <20190129035016.25981-1-ischis2@cox.net> References: <20190121053112.4736-1-ischis2@cox.net> <20190129035016.25981-1-ischis2@cox.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Display date and time information in a format similar to how people write dates in other contexts. If the year isn't specified then, the reader infers the date is given is in the current year. By not displaying the redundant information, the reader concentrates on the information that is different. The patch reports relative dates based on information inferred from the date on the machine running the git command at the time the command is executed. While the format is more useful to humans by dropping inferred information, there is nothing that makes it actually human. If the 'relative' date format wasn't already implemented then using 'relative' would have been appropriate. Signed-off-by: Stephen P. Smith --- Documentation/git-log.txt | 4 ++++ Documentation/rev-list-options.txt | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 90761f1694..b02e922dc3 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -192,6 +192,10 @@ log.date:: Default format for human-readable dates. (Compare the `--date` option.) Defaults to "default", which means to write dates like `Sat May 8 19:35:34 2010 -0500`. ++ +If the format is set to "auto:foo" and the pager is in use, format +"foo" will be the used for the date format. Otherwise "default" will +be used. log.follow:: If `true`, `git log` will act as if the `--follow` option was used when diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 98b538bc77..867a063a1c 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -831,6 +831,13 @@ Note that the `-local` option does not affect the seconds-since-epoch value (which is always measured in UTC), but does switch the accompanying timezone value. + +`--date=human` shows the timezone if the timezone does not match the +current time-zone, and doesn't print the whole date if that matches +(ie skip printing year for dates that are "this year", but also skip +the whole date itself if it's in the last few days and we can just say +what weekday it was). For older dates the hour and minute is also +omitted. ++ `--date=unix` shows the date as a Unix epoch timestamp (seconds since 1970). As with `--raw`, this is always in UTC and therefore `-local` has no effect. From patchwork Tue Jan 29 03:50:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Stephen P. Smith" X-Patchwork-Id: 10785357 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A790B91E for ; Tue, 29 Jan 2019 03:50:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 87DCB2B5BD for ; Tue, 29 Jan 2019 03:50:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7BE5E2B5C9; Tue, 29 Jan 2019 03:50:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 343082B5BD for ; Tue, 29 Jan 2019 03:50:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727178AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmfepo202.cox.net ([68.230.241.147]:60791 "EHLO fed1rmfepo202.cox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726992AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmimpo305.cox.net ([68.230.241.173]) by fed1rmfepo202.cox.net (InterMail vM.8.01.05.28 201-2260-151-171-20160122) with ESMTP id <20190129035018.OSYD4175.fed1rmfepo202.cox.net@fed1rmimpo305.cox.net> for ; Mon, 28 Jan 2019 22:50:18 -0500 Received: from thunderbird.smith.home (localhost [127.0.0.1]) by thunderbird.smith.home (Postfix) with ESMTP id 206C2B819D3; Mon, 28 Jan 2019 20:50:17 -0700 (MST) X-CT-Class: Clean X-CT-Score: 0.00 X-CT-RefID: str=0001.0A090211.5C4FCD79.0057,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 X-CT-Spam: 0 X-Authority-Analysis: v=2.3 cv=Tv9Sewfh c=1 sm=1 tr=0 a=BlDZPKRk22kUaIvSBqmi8w==:117 a=BlDZPKRk22kUaIvSBqmi8w==:17 a=3JhidrIBZZsA:10 a=kviXuzpPAAAA:8 a=QSJ3QlV4PZC--piD8cAA:9 a=qrIFiuKZe2vaD64auk6j:22 X-CM-Score: 0.00 Authentication-Results: cox.net; auth=pass (LOGIN) smtp.auth=ischis2@cox.net From: "Stephen P. Smith" To: git@vger.kernel.org Cc: Linus Torvalds , Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= , Jeff King , Philip Oakley , Johannes Sixt , SZEDER =?utf-8?b?R8OhYm9y?= Subject: [PATCH v4 4/5] Add `human` format to test-tool Date: Mon, 28 Jan 2019 20:50:15 -0700 Message-Id: <20190129035016.25981-5-ischis2@cox.net> X-Mailer: git-send-email 2.20.1.2.gb21ebb671b In-Reply-To: <20190129035016.25981-1-ischis2@cox.net> References: <20190121053112.4736-1-ischis2@cox.net> <20190129035016.25981-1-ischis2@cox.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add the human format support to the test tool so that GIT_TEST_DATE_NOW can be used to specify the current time. The get_time() helper function was created and and checks the GIT_TEST_DATE_NOW environment variable. If GIT_TEST_DATE_NOW is set, then that date is used instead of the date returned by by gettimeofday(). All calls to gettimeofday() were replaced by calls to get_time(). Renamed occurances of TEST_DATE_NOW to GIT_TEST_DATE_NOW since the variable is now used in the get binary and not just in the test-tool. Signed-off-by: Stephen P. Smith --- cache.h | 2 ++ date.c | 21 +++++++++++++++++---- t/helper/test-date.c | 13 ++++++++++++- t/t0006-date.sh | 4 ++-- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/cache.h b/cache.h index 34c33e6a28..fe00ddf910 100644 --- a/cache.h +++ b/cache.h @@ -1467,6 +1467,8 @@ struct date_mode *date_mode_from_type(enum date_mode_type type); const char *show_date(timestamp_t time, int timezone, const struct date_mode *mode); void show_date_relative(timestamp_t time, int tz, const struct timeval *now, struct strbuf *timebuf); +void show_date_human(timestamp_t time, int tz, const struct timeval *now, + struct strbuf *timebuf); int parse_date(const char *date, struct strbuf *out); int parse_date_basic(const char *date, timestamp_t *timestamp, int *offset); int parse_expiry_date(const char *date, timestamp_t *timestamp); diff --git a/date.c b/date.c index 43c3a84e25..e997664c1a 100644 --- a/date.c +++ b/date.c @@ -115,6 +115,19 @@ static int local_tzoffset(timestamp_t time) return local_time_tzoffset((time_t)time, &tm); } +static void get_time(struct timeval *now) +{ + const char *x; + + x = getenv("GIT_TEST_DATE_NOW"); + if (x) { + now->tv_sec = atoi(x); + now->tv_usec = 0; + } + else + gettimeofday(now, NULL); +} + void show_date_relative(timestamp_t time, int tz, const struct timeval *now, struct strbuf *timebuf) @@ -228,7 +241,7 @@ static void show_date_normal(struct strbuf *buf, timestamp_t time, struct tm *tm /* Show "today" times as just relative times */ if (hide.wday) { struct timeval now; - gettimeofday(&now, NULL); + get_time(&now); show_date_relative(time, tz, &now, buf); return; } @@ -284,7 +297,7 @@ const char *show_date(timestamp_t time, int tz, const struct date_mode *mode) if (mode->type == DATE_HUMAN) { struct timeval now; - gettimeofday(&now, NULL); + get_time(&now); /* Fill in the data for "current time" in human_tz and human_tm */ human_tz = local_time_tzoffset(now.tv_sec, &human_tm); @@ -303,7 +316,7 @@ const char *show_date(timestamp_t time, int tz, const struct date_mode *mode) struct timeval now; strbuf_reset(&timebuf); - gettimeofday(&now, NULL); + get_time(&now); show_date_relative(time, tz, &now, &timebuf); return timebuf.buf; } @@ -1296,7 +1309,7 @@ timestamp_t approxidate_careful(const char *date, int *error_ret) return timestamp; } - gettimeofday(&tv, NULL); + get_time(&tv); return approxidate_str(date, &tv, error_ret); } diff --git a/t/helper/test-date.c b/t/helper/test-date.c index a0837371ab..9b2ac772ee 100644 --- a/t/helper/test-date.c +++ b/t/helper/test-date.c @@ -3,6 +3,7 @@ static const char *usage_msg = "\n" " test-tool date relative [time_t]...\n" +" test-tool date human [time_t]...\n" " test-tool date show: [time_t]...\n" " test-tool date parse [date]...\n" " test-tool date approxidate [date]...\n" @@ -22,6 +23,14 @@ static void show_relative_dates(const char **argv, struct timeval *now) strbuf_release(&buf); } +static void show_human_dates(const char **argv) +{ + for (; *argv; argv++) { + time_t t = atoi(*argv); + printf("%s -> %s\n", *argv, show_date(t, 0, DATE_MODE(HUMAN))); + } +} + static void show_dates(const char **argv, const char *format) { struct date_mode mode; @@ -87,7 +96,7 @@ int cmd__date(int argc, const char **argv) struct timeval now; const char *x; - x = getenv("TEST_DATE_NOW"); + x = getenv("GIT_TEST_DATE_NOW"); if (x) { now.tv_sec = atoi(x); now.tv_usec = 0; @@ -100,6 +109,8 @@ int cmd__date(int argc, const char **argv) usage(usage_msg); if (!strcmp(*argv, "relative")) show_relative_dates(argv+1, &now); + else if (!strcmp(*argv, "human")) + show_human_dates(argv+1); else if (skip_prefix(*argv, "show:", &x)) show_dates(argv+1, x); else if (!strcmp(*argv, "parse")) diff --git a/t/t0006-date.sh b/t/t0006-date.sh index ffb2975e48..90930c2aa7 100755 --- a/t/t0006-date.sh +++ b/t/t0006-date.sh @@ -4,10 +4,10 @@ test_description='test date parsing and printing' . ./test-lib.sh # arbitrary reference time: 2009-08-30 19:20:00 -TEST_DATE_NOW=1251660000; export TEST_DATE_NOW +GIT_TEST_DATE_NOW=1251660000; export GIT_TEST_DATE_NOW check_relative() { - t=$(($TEST_DATE_NOW - $1)) + t=$(($GIT_TEST_DATE_NOW - $1)) echo "$t -> $2" >expect test_expect_${3:-success} "relative date ($2)" " test-tool date relative $t >actual && From patchwork Tue Jan 29 03:50:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Stephen P. Smith" X-Patchwork-Id: 10785367 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 00DA591E for ; Tue, 29 Jan 2019 03:50:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E5BFC2B5BD for ; Tue, 29 Jan 2019 03:50:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DA5092B5C3; Tue, 29 Jan 2019 03:50:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 800B52B5BD for ; Tue, 29 Jan 2019 03:50:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727252AbfA2Du0 (ORCPT ); Mon, 28 Jan 2019 22:50:26 -0500 Received: from fed1rmfepo103.cox.net ([68.230.241.145]:46104 "EHLO fed1rmfepo103.cox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727029AbfA2DuT (ORCPT ); Mon, 28 Jan 2019 22:50:19 -0500 Received: from fed1rmimpo305.cox.net ([68.230.241.173]) by fed1rmfepo103.cox.net (InterMail vM.8.01.05.28 201-2260-151-171-20160122) with ESMTP id <20190129035018.GXIN4136.fed1rmfepo103.cox.net@fed1rmimpo305.cox.net> for ; Mon, 28 Jan 2019 22:50:18 -0500 Received: from thunderbird.smith.home (localhost [127.0.0.1]) by thunderbird.smith.home (Postfix) with ESMTP id 3E957B81A5E; Mon, 28 Jan 2019 20:50:17 -0700 (MST) X-CT-Class: Clean X-CT-Score: 0.00 X-CT-RefID: str=0001.0A090211.5C4FCD7A.0012,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 X-CT-Spam: 0 X-Authority-Analysis: v=2.3 cv=Tv9Sewfh c=1 sm=1 tr=0 a=BlDZPKRk22kUaIvSBqmi8w==:117 a=BlDZPKRk22kUaIvSBqmi8w==:17 a=3JhidrIBZZsA:10 a=kviXuzpPAAAA:8 a=qrhz1JM_Fw-vKaZgdOYA:9 a=qrIFiuKZe2vaD64auk6j:22 X-CM-Score: 0.00 Authentication-Results: cox.net; auth=pass (LOGIN) smtp.auth=ischis2@cox.net From: "Stephen P. Smith" To: git@vger.kernel.org Cc: Linus Torvalds , Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFy?= =?utf-8?b?bWFzb24=?= , Jeff King , Philip Oakley , Johannes Sixt , SZEDER =?utf-8?b?R8OhYm9y?= Subject: [PATCH v4 5/5] Add `human` date format tests. Date: Mon, 28 Jan 2019 20:50:16 -0700 Message-Id: <20190129035016.25981-6-ischis2@cox.net> X-Mailer: git-send-email 2.20.1.2.gb21ebb671b In-Reply-To: <20190129035016.25981-1-ischis2@cox.net> References: <20190121053112.4736-1-ischis2@cox.net> <20190129035016.25981-1-ischis2@cox.net> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When using `human` several fields are suppressed depending on the time difference between the reference date and the local computer date. In cases where the difference is less than a year, the year field is supppressed. If the time is less than a day; the month and year is suppressed. Use TEST_DATE_NOW environment variable when using the test-tool to hold the expected output strings constant. Signed-off-by: Stephen P. Smith --- t/t0006-date.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/t/t0006-date.sh b/t/t0006-date.sh index 90930c2aa7..d9fcc829a9 100755 --- a/t/t0006-date.sh +++ b/t/t0006-date.sh @@ -128,4 +128,22 @@ check_approxidate '6AM, June 7, 2009' '2009-06-07 06:00:00' check_approxidate '2008-12-01' '2008-12-01 19:20:00' check_approxidate '2009-12-01' '2009-12-01 19:20:00' +check_date_format_human() { + t=$(($GIT_TEST_DATE_NOW - $1)) + echo "$t -> $2" >expect + test_expect_success "human date $t" ' + test-tool date human $t >actual && + test_i18ncmp expect actual +' +} + +check_date_format_human 18000 "5 hours ago" # 5 hours ago +check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago +check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago +check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago +check_date_format_human 31449600 "Aug 31 2008" # 12 months ago +check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago +check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago +check_date_format_human 630000000 "Sep 13 1989" # 20 years ago + test_done