From: Ramkumar Ramachandra Date: Thu, 13 Jun 2013 18:16:01 GMT Subject: [PATCH 2/3] sh-setup: add new peel_committish() helper Message-ID: <1371147362-26962-3-git-send-email-artagnon@gmail.com> In-Reply-To: <1371147362-26962-1-git-send-email-artagnon@gmail.com> The normal way to check whether a certain revision resolves to a valid commit is: $ git rev-parse --verify $REV^0 Unfortunately, this does not work when $REV is of the type :/quuxery. Write a helper to work around this limitation. Suggested-by: Junio C Hamano Signed-off-by: Ramkumar Ramachandra --- git-sh-setup.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 2f78359..6ae19a6 100644 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -313,3 +313,16 @@ then } : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"} fi + +peel_committish () { + test $# -gt 1 && quiet="--quiet" || quiet="" + case "$1" in + :/*) + peeltmp=$(git rev-parse --verify $quiet "$1") && + git rev-parse --verify "${peeltmp}^0" + ;; + *) + git rev-parse --verify "${1}^0" + ;; + esac +} -- 1.8.3.1.381.g31c8856.dirty