From: Junio C Hamano Date: Tue, 08 Jan 2013 18:45:49 GMT Subject: Re: [PATCH 4/7] contrib/subtree: Better Error Handling for add Message-ID: <7v7gnneco2.fsf@alter.siamese.dyndns.org> In-Reply-To: <1357646997-28675-5-git-send-email-greened@obbligato.org> "David A. Greene" writes: > From: "David A. Greene" > > 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 > --- > contrib/subtree/git-subtree.sh | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh > index cac0680..d53eaee 100755 > --- a/contrib/subtree/git-subtree.sh > +++ b/contrib/subtree/git-subtree.sh > @@ -508,12 +508,18 @@ cmd_add() > ensure_clean > > if [ $# -eq 1 ]; then > - "cmd_add_commit" "$@" > + git rev-parse -q --verify "$1^{commit}" >/dev/null || > + die "'$1' does not refer to a commit" Where do these uneven indentation come from? Is it mimicking existing breakage in the script? > + > + "cmd_add_commit" "$@" > elif [ $# -eq 2 ]; then > - "cmd_add_repository" "$@" > + git rev-parse -q --verify "$2^{commit}" >/dev/null || > + die "'$2' does not refer to a commit" > + > + "cmd_add_repository" "$@" > else > say "error: parameters were '$@'" > - die "Provide either a refspec or a repository and refspec." > + die "Provide either a commit or a repository and commit." > fi > }