contrib/subtree: better error handling for 'subtree add'
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>
David A. Greene committed
Feb 4, 2013 at 22:06 UTC
10a49587fabde88c0afbc80a99d97fae91811f5f
1 file changed
+9
-3
contrib/subtree/git-subtree.sh
+9
-3
@@ -497,12 +497,18 @@ cmd_add()
497
ensure_clean
498
499
if [ $# -eq 1 ]; then
500
- "cmd_add_commit" "$@"
500
+ git rev-parse -q --verify "$1^{commit}" >/dev/null ||
501
+ die "'$1' does not refer to a commit"
502
+
503
+ "cmd_add_commit" "$@"
504
elif [ $# -eq 2 ]; then
502
- "cmd_add_repository" "$@"
505
+ git rev-parse -q --verify "$2^{commit}" >/dev/null ||
506
+ die "'$2' does not refer to a commit"
507
+
508
+ "cmd_add_repository" "$@"
509
else
510
say "error: parameters were '$@'"
505
- die "Provide either a refspec or a repository and refspec."
511
+ die "Provide either a commit or a repository and commit."
512
fi
513
}
514