threads / patch / 33819

patchdiffcore-pickaxe: make error messages more consistent

Subject: [PATCH] diffcore-pickaxe: make error messages more consistent

## tl;dr

3 messages between May 14, 2013 and May 14, 2013. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Ramkumar Ramachandra· May 14, 2013, 14:16 UTC · lore

Currently, diffcore-pickaxe reports two distinct errors for the same user error:

    $ git log --pickaxe-regex -S'\1'
    fatal: invalid pickaxe regex: Invalid back reference
    $ git log -G'\1' # --pickaxe-regex is implied
    fatal: invalid log-grep regex: Invalid back reference

Since the error has nothing to do with "log-grep", change the -G error message to match the -S error message.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 Sorry I couldn't do more.  diffcore-pickaxe.c isn't at all easy to
 hack on, because there are so few tests guarding it.
 diffcore-pickaxe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to diffcore-pickaxe.c +1 −1
diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
index 63722f8..d69a7a2 100644
--- a/diffcore-pickaxe.c
+++ b/diffcore-pickaxe.c
@@ -122,7 +122,7 @@ static void diffcore_pickaxe_grep(struct diff_options *o)
 		char errbuf[1024];
 		regerror(err, &regex, errbuf, 1024);
 		regfree(&regex);
-		die("invalid log-grep regex: %s", errbuf);
+		die("invalid pickaxe regex: %s", errbuf);
 	}
 
 	pickaxe(&diff_queued_diff, o, &regex, NULL, diff_grep);
-- 
1.8.3.rc1.61.g2cacfff
Junio C Hamano· May 14, 2013, 17:46 UTC · re: Ramkumar Ramachandra · lore

Re: [PATCH] diffcore-pickaxe: make error messages more consistent

Ramkumar Ramachandra <artagnon@gmail.com> writes:
Show 33 quoted lines
> Currently, diffcore-pickaxe reports two distinct errors for the same
> user error:
>
>     $ git log --pickaxe-regex -S'\1'
>     fatal: invalid pickaxe regex: Invalid back reference
>
>     $ git log -G'\1' # --pickaxe-regex is implied
>     fatal: invalid log-grep regex: Invalid back reference
>
> Since the error has nothing to do with "log-grep", change the -G error
> message to match the -S error message.
>
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> ---
>  Sorry I couldn't do more.  diffcore-pickaxe.c isn't at all easy to
>  hack on, because there are so few tests guarding it.
>
>  diffcore-pickaxe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
> index 63722f8..d69a7a2 100644
> --- a/diffcore-pickaxe.c
> +++ b/diffcore-pickaxe.c
> @@ -122,7 +122,7 @@ static void diffcore_pickaxe_grep(struct diff_options *o)
>  		char errbuf[1024];
>  		regerror(err, &regex, errbuf, 1024);
>  		regfree(&regex);
> -		die("invalid log-grep regex: %s", errbuf);
> +		die("invalid pickaxe regex: %s", errbuf);
>  	}
>  
>  	pickaxe(&diff_queued_diff, o, &regex, NULL, diff_grep);

I am debating myself if it is truly easier to explain for users that "-G" is a different variant of pickaxe.

It happens to be implemented in the same source file as pickaxe, but they do logically quite different things. -G does not even have a reason to pay attention to --pickaxe-regexp (it is "grep in the log -p").

I suspect that it might avoid unnecessary confusion to explain them as totally separate operations, and not labelling this error with "pickaxe regex". I dunno.

Ramkumar Ramachandra· May 14, 2013, 18:15 UTC · re: Junio C Hamano · lore

Re: [PATCH] diffcore-pickaxe: make error messages more consistent

Junio C Hamano wrote:
> I am debating myself if it is truly easier to explain for users that
> "-G" is a different variant of pickaxe.

Hm, I think it is the correct approach because readers of diffcore are probably going to look at the source: it's not exactly an end-user manpage. I've not explained it as G king versus S kind in the diff-options documentation.

Or are you just talking about the error message? That's simple: --pickaxe-regex is what triggers this off, and we've made it clear that it applies to both commands (-G implicitly; see doc).

← back to recent threads