git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/8] Better Error Handling for add

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 1, 2013, 21:39 UTC
Message-ID
<7v1ue4a8i0.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1357012655-24974-4-git-send-email-greened@obbligato.org>
"David A. Greene" <greened@obbligato.org> writes:
Show 20 quoted lines
> From: "David A. Greene" <greened@obbligato.org>
>
> Check refspecs for validity before passing them on to other commands.
> This lets us generate more helpful error messages.
>
> Signed-off-by: David A. Greene <greened@obbligato.org>
> ---
>  contrib/subtree/git-subtree.sh |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
> index 7ceb413..b8a807a 100755
> --- a/contrib/subtree/git-subtree.sh
> +++ b/contrib/subtree/git-subtree.sh
> @@ -509,8 +509,20 @@ cmd_add()
>  	ensure_clean
>  	
>  	if [ $# -eq 1 ]; then
> +	        ref=$(git check-ref-format --normalize "refs/heads/$1") ||
> +                die "'$1' is not a valid refspec.  Are you missing a branch?"

Is a user forbidden from passing a commit that is not at the tip of an existing branch? In other words, is

	$ subtree add origin/next~4^2
forbidden?
> +	        rev=$(git rev-parse --verify $1) ||
> +                die "'$1' is not a valid refspec.  Are you missing a branch?"
> +
>  		"cmd_add_commit" "$@"

If you want to make sure you give a comit to add_commit, you can probably say something like this:

	git rev-parse -q --verify "$1^{commit}" >/dev/null ||
        die "'$1' does not refer to a commit"
Show 7 quoted lines
>  	elif [ $# -eq 2 ]; then
> +	        ref=$(git check-ref-format --normalize "refs/heads/$2") ||
> +                die "'$2' is not a valid refspec."
> +
> +	        rev=$(git rev-parse --verify $2) ||
> +                die "'$2' is not a valid refspec."
> +
Likewise.
>  		"cmd_add_repository" "$@"
>  	else
>  	    say "error: parameters were '$@'"
Previous: David A. GreeneNext: greened@obbligato.org
Message 23 of 38 in “git-subtree Patches to Apply”
  1. David A. GreeneJan 1, 2013
  2. 1/8 Use %B for Split Subject/BodyDavid A. Greene, Jan 1, 2013
  3. greened@obbligato.orgJan 1, 2013
  4. Junio C HamanoJan 1, 2013
  5. greened@obbligato.orgJan 1, 2013
  6. Junio C HamanoJan 1, 2013
  7. greened@obbligato.orgJan 1, 2013
  8. 郑文辉 (Techlive Zheng)Jan 7, 2013
  9. Junio C HamanoJan 7, 2013
  10. Junio C HamanoJan 1, 2013
  11. greened@obbligato.orgJan 1, 2013
  12. Junio C HamanoJan 2, 2013
  13. greened@obbligato.orgJan 8, 2013
  14. 2/8 Add --unannotateDavid A. Greene, Jan 1, 2013
  15. Junio C HamanoJan 1, 2013
  16. greened@obbligato.orgJan 1, 2013
  17. Junio C HamanoJan 2, 2013
  18. greened@obbligato.orgJan 8, 2013
  19. James NylenJan 17, 2013
  20. greened@obbligato.orgJan 22, 2013
  21. Junio C HamanoJan 22, 2013
  22. 3/8 Better Error Handling for addDavid A. Greene, Jan 1, 2013
  23. Junio C HamanoJan 1, 2013
  24. greened@obbligato.orgJan 1, 2013
  25. Junio C HamanoJan 2, 2013
  26. 4/8 Fix SynopsisDavid A. Greene, Jan 1, 2013
  27. Junio C HamanoJan 1, 2013
  28. greened@obbligato.orgJan 1, 2013
  29. 5/8 Honor DESTDIRDavid A. Greene, Jan 1, 2013
  30. Junio C HamanoJan 1, 2013
  31. greened@obbligato.orgJan 1, 2013
  32. 6/8 Make the Manual Directory if NeededDavid A. Greene, Jan 1, 2013
  33. Junio C HamanoJan 1, 2013
  34. greened@obbligato.orgJan 1, 2013
  35. 7/8 Ignore git-subtreeDavid A. Greene, Jan 1, 2013
  36. Junio C HamanoJan 1, 2013
  37. 8/8 Fix Documentation TypoDavid A. Greene, Jan 1, 2013
  38. 郑文辉 (Techlive Zheng)Jan 7, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.