Re: Silly "git gc" UI issue.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 19, 2018 at 10:52:47AM +0900, Junio C Hamano wrote:
> It turns out that prune silently goes away given a bad expiry
>
>     $ git prune --expire=nyah ; echo $?
>     129

I noticed that git log --since/--after/--before/--until have a
similar behavior and ignore date parsing errors in those options
completely. Is this expected or should we warn the user with
something like the following?

diff --git a/revision.c b/revision.c
index 4e0e193e57..e5ba6c7dfc 100644
--- a/revision.c
+++ b/revision.c
@@ -1794,19 +1794,31 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
 		revs->max_age = atoi(optarg);
 		return argcount;
 	} else if ((argcount = parse_long_opt("since", argv, &optarg))) {
-		revs->max_age = approxidate(optarg);
+		int err = 0;
+		revs->max_age = approxidate_careful(optarg, &err);
+		if (err)
+			return error("--since: invalid time '%s'", optarg);
 		return argcount;
 	} else if ((argcount = parse_long_opt("after", argv, &optarg))) {
-		revs->max_age = approxidate(optarg);
+		int err = 0;
+		revs->max_age = approxidate_careful(optarg, &err);
+		if (err)
+			return error("--after: invalid time '%s'", optarg);
 		return argcount;
 	} else if ((argcount = parse_long_opt("min-age", argv, &optarg))) {
 		revs->min_age = atoi(optarg);
 		return argcount;
 	} else if ((argcount = parse_long_opt("before", argv, &optarg))) {
-		revs->min_age = approxidate(optarg);
+		int err = 0;
+		revs->min_age = approxidate_careful(optarg, &err);
+		if (err)
+			return error("--before: invalid time '%s'", optarg);
 		return argcount;
 	} else if ((argcount = parse_long_opt("until", argv, &optarg))) {
-		revs->min_age = approxidate(optarg);
+		int err = 0;
+		revs->min_age = approxidate_careful(optarg, &err);
+		if (err)
+			return error("--until: invalid time '%s'");
 		return argcount;
 	} else if (!strcmp(arg, "--first-parent")) {
 		revs->first_parent_only = 1;

Regards
Simon
-- 
+ privacy is necessary
+ using gnupg http://gnupg.org
+ public key id: 0x92FEFDB7E44C32F9



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux