threads / patch / 34450

patchrequest-pull: improve error message for invalid revision args

Subject: [PATCH] request-pull: improve error message for invalid revision args

## tl;dr

3 messages between Jul 16, 2013 and Jul 17, 2013. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Dirk Wallenstein· Jul 16, 2013, 10:46 UTC · lore
When an invalid revision is specified, the error message is:
    fatal: Needed a single revision

This is misleading because, you might think there is something wrong with the command line as a whole.

Now the user gets a more meaningful error message, showing the invalid revision.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
---
Notes:
    I assume, it is not worth the trouble to even try to change the message from
    rev-parse for this.  People might parse the messages, which is probably why
    this message still exists.
 git-request-pull.sh | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Show changes to git-request-pull.sh +12 −2
diff --git a/git-request-pull.sh b/git-request-pull.sh
index d566015..f38f0f9 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -51,8 +51,18 @@ fi
 tag_name=$(git describe --exact "$head^0" 2>/dev/null)
 
 test -n "$base" && test -n "$url" || usage
-baserev=$(git rev-parse --verify "$base"^0) &&
-headrev=$(git rev-parse --verify "$head"^0) || exit
+
+baserev=$(git rev-parse --verify "$base"^0 2>/dev/null)
+if test -z "$baserev"
+then
+    die "fatal: Not a valid revision: $base"
+fi
+
+headrev=$(git rev-parse --verify "$head"^0 2>/dev/null)
+if test -z "$headrev"
+then
+    die "fatal: Not a valid revision: $head"
+fi
 
 merge_base=$(git merge-base $baserev $headrev) ||
 die "fatal: No commits in common between $base and $head"
-- 
1.8.3.2.51.g8658a4c
Junio C Hamano· Jul 17, 2013, 17:06 UTC · re: Dirk Wallenstein · lore

Re: [PATCH] request-pull: improve error message for invalid revision args

Dirk Wallenstein <halsmit@t-online.de> writes:
Show 17 quoted lines
> When an invalid revision is specified, the error message is:
>
>     fatal: Needed a single revision
>
> This is misleading because, you might think there is something wrong
> with the command line as a whole.
>
> Now the user gets a more meaningful error message, showing the invalid
> revision.
>
> Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
> ---
>
> Notes:
>     I assume, it is not worth the trouble to even try to change the message from
>     rev-parse for this.  People might parse the messages, which is probably why
>     this message still exists.

You are right---such a change will break existing scripts, so it is not just "not worth the trouble" but is actively wrong to change the error message.

Show 15 quoted lines
>  git-request-pull.sh | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/git-request-pull.sh b/git-request-pull.sh
> index d566015..f38f0f9 100755
> --- a/git-request-pull.sh
> +++ b/git-request-pull.sh
> @@ -51,8 +51,18 @@ fi
>  tag_name=$(git describe --exact "$head^0" 2>/dev/null)
>  
>  test -n "$base" && test -n "$url" || usage
> -baserev=$(git rev-parse --verify "$base"^0) &&
> -headrev=$(git rev-parse --verify "$head"^0) || exit
> +
> +baserev=$(git rev-parse --verify "$base"^0 2>/dev/null)
Use "--quiet" instead?
Show 13 quoted lines
> +if test -z "$baserev"
> +then
> +    die "fatal: Not a valid revision: $base"
> +fi
> +
> +headrev=$(git rev-parse --verify "$head"^0 2>/dev/null)
> +if test -z "$headrev"
> +then
> +    die "fatal: Not a valid revision: $head"
> +fi
>  
>  merge_base=$(git merge-base $baserev $headrev) ||
>  die "fatal: No commits in common between $base and $head"
Dirk Wallenstein· Jul 17, 2013, 17:28 UTC · re: Junio C Hamano · lore

[PATCH v2] request-pull: improve error message for invalid revision args

Currently, when an invalid revision is specified, the error message is:
    fatal: Needed a single revision

This is misleading because, you might think there is something wrong with the command line as a whole.

Now the user gets a more meaningful error message, showing the invalid revision.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
---
On Wed, Jul 17, 2013 at 10:06:21AM -0700, Junio C Hamano wrote:
> Dirk Wallenstein <halsmit@t-online.de> writes:
> > +baserev=$(git rev-parse --verify "$base"^0 2>/dev/null)
> 
> Use "--quiet" instead?
Oh, of course.
 git-request-pull.sh | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Show changes to git-request-pull.sh +12 −2
diff --git a/git-request-pull.sh b/git-request-pull.sh
index d566015..ebf1269 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -51,8 +51,18 @@ fi
 tag_name=$(git describe --exact "$head^0" 2>/dev/null)
 
 test -n "$base" && test -n "$url" || usage
-baserev=$(git rev-parse --verify "$base"^0) &&
-headrev=$(git rev-parse --verify "$head"^0) || exit
+
+baserev=$(git rev-parse --verify --quiet "$base"^0)
+if test -z "$baserev"
+then
+    die "fatal: Not a valid revision: $base"
+fi
+
+headrev=$(git rev-parse --verify --quiet "$head"^0)
+if test -z "$headrev"
+then
+    die "fatal: Not a valid revision: $head"
+fi
 
 merge_base=$(git merge-base $baserev $headrev) ||
 die "fatal: No commits in common between $base and $head"
-- 
1.8.3.3.2.g85103ba

← back to recent threads