Teach "git checkout" to use git-show-ref

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Friday, September 15, 2006 - 2:56 pm

That way, it doesn't care how the refs are stored any more

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

Just as an example of how to use git-show-ref rather than knowing about 
"$GIT_DIR/refs/..." paths.

This basically replaces my much hackier version that is in the "lt/refs" 
branch, but can go into the master branch independently of the 
refs-packing work.

diff --git a/git-checkout.sh b/git-checkout.sh
index 580a9e8..6e4c535 100755
--- a/git-checkout.sh
+++ b/git-checkout.sh
@@ -22,7 +22,7 @@ while [ "$#" != "0" ]; do
 		shift
 		[ -z "$newbranch" ] &&
 			die "git checkout: -b needs a branch name"
-		[ -e "$GIT_DIR/refs/heads/$newbranch" ] &&
+		git-show-ref --verify --quiet -- "refs/heads/$newbranch" &&
 			die "git checkout: branch $newbranch already exists"
 		git-check-ref-format "heads/$newbranch" ||
 			die "git checkout: we do not like '$newbranch' as a branch name."
@@ -51,7 +51,7 @@ while [ "$#" != "0" ]; do
 			fi
 			new="$rev"
 			new_name="$arg^0"
-			if [ -f "$GIT_DIR/refs/heads/$arg" ]; then
+			if git-show-ref --verify --quiet -- "refs/heads/$arg" ]; then
 				branch="$arg"
 			fi
 		elif rev=$(git-rev-parse --verify "$arg^{tree}" 2>/dev/null)
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Add &quot;git show-ref&quot; builtin command, Linus Torvalds, (Fri Sep 15, 11:19 am)
Teach "git checkout" to use git-show-ref, Linus Torvalds, (Fri Sep 15, 2:56 pm)
Re: Teach &quot;git checkout&quot; to use git-show-ref, Junio C Hamano, (Sat Sep 16, 2:33 am)