contrib/subtree: better error handling for 'subtree add'
authorDavid A. Greene <greened@obbligato.org>
Tue, 5 Feb 2013 04:06:03 +0000 (22:06 -0600)
committerJunio C Hamano <gitster@pobox.com>
Tue, 5 Feb 2013 23:22:36 +0000 (15:22 -0800)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/subtree/git-subtree.sh

index 559821092dd0214b9c9ccce7a623666300adb7ac..771f39d0310135f15e8ab3ed252c6a6ffcd5c8a9 100755 (executable)
@@ -497,12 +497,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"
+
+           "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
 }