Code

git-checkout: rewording comments regarding detached HEAD.
authorJunio C Hamano <junkio@cox.net>
Mon, 8 Jan 2007 10:08:47 +0000 (02:08 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 8 Jan 2007 11:02:11 +0000 (03:02 -0800)
We used to say "you are not on a branch" before the initial
commit.  This is incorrect -- the user is on a branch yet to be
born, but its name has been already determined.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-checkout.sh

index 5a7388759c8cb5f3c08de5c299b3ea4f1e69acc5..3250f64ccc683606d420a82b3ec95e2f41bb52b3 100755 (executable)
@@ -140,22 +140,25 @@ fi
 
 [ -z "$new" ] && new=$old && new_name="$old_name"
 
-# If we don't have an old branch that we're switching to,
+# If we don't have an existing branch that we're switching to,
 # and we don't have a new branch name for the target we
-# are switching to, then we'd better just be checking out
-# what we already had
+# are switching to, then we are detaching our HEAD from any
+# branch.  However, if "git checkout HEAD" detaches the HEAD
+# from the current branch, even though that may be logically
+# correct, it feels somewhat funny.  More importantly, we do not
+# want "git checkout" nor "git checkout -f" to detach HEAD.
 
 if test -z "$branch$newbranch" && test "$new" != "$old"
 then
-       # NEEDSWORK: we would want to have this command here
-       # that allows us to detach the HEAD atomically.
-       # git update-ref --detach HEAD "$new"
+       # NEEDSWORK: we would want to have a command here
+       # that allows us to detach the HEAD atomically.  Perhaps
+       # something like "git update-ref --detach HEAD $new"
        echo "$new" >"$GIT_DIR/HEAD.new" &&
        mv "$GIT_DIR/HEAD.new" "$GIT_DIR/HEAD" || die "Cannot detach HEAD"
 
        if test -n "$oldbranch"
        then
-               echo >&2 "WARNING: you are not on ANY branch anymore.
+               echo >&2 "warning: you are not on ANY branch anymore.
 If you meant to create a new branch from the commit, you need -b to
 associate a new branch with the wanted checkout.  Example:
   git checkout -b <new_branch_name> $arg
@@ -165,8 +168,8 @@ fi
 
 if [ "X$old" = X ]
 then
-       echo "warning: You do not appear to currently be on a branch." >&2
-       echo "warning: Forcing checkout of $new_name." >&2
+       echo >&2 "warning: You appear to be on a branch yet to be born."
+       echo >&2 "warning: Forcing checkout of $new_name."
        force=1
 fi