From: Junio C Hamano Date: Thu, 18 Apr 2013 16:39:23 GMT Subject: Re: [PATCH] t3400 (rebase): add failing test for a peculiar rev spec Message-ID: <7vmwsv94jo.fsf@alter.siamese.dyndns.org> In-Reply-To: <1366275155-26244-1-git-send-email-artagnon@gmail.com> Ramkumar Ramachandra writes: > 'git rebase' does not recognize revisions specified as :/text. This > is because the attempts to rev-parse ${REV}^0, which fails in this > case. Add a test to document this failure. > - The failure occurs in git-rebase.sh:403. Is it using the ^0 only > to make sure that the revision specified is a commit? Surely, > there'a a better way to do this? > > Can someone point me in the right direction? How about ${REV}^0 into nREV=$(git rev-parse "${REV}")^0 and use it where you need an object name that needs to be parsed by get_sha1(), e.g. git checkout -q "$nREV^0" I would suggest a helper function in git-sh-setup, something like: peel_committish () { case "$1" in :/*) peeltmp=$(git rev-parse --verify "$1") && git rev-parse --verify "$peeltmp^0" ;; *) git rev-parse --verify "$1^0" ;; esac }