diff options
author | Junio C Hamano <junkio@cox.net> | 2007-03-14 01:38:28 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-14 01:38:28 -0700 |
commit | 36db2399e023c1526fac0b142524229554b88419 (patch) | |
tree | aea89486c946b3010c2d8112403666e56cf9e59c /git-checkout.sh | |
parent | git-grep: don't use sscanf (diff) | |
parent | Fix broken create_branch() in builtin-branch. (diff) | |
download | tgif-36db2399e023c1526fac0b142524229554b88419.tar.xz |
Merge branch 'pb/branch-track'
* pb/branch-track:
Fix broken create_branch() in builtin-branch.
git-branch, git-checkout: autosetup for remote branch tracking
Diffstat (limited to 'git-checkout.sh')
-rwxr-xr-x | git-checkout.sh | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/git-checkout.sh b/git-checkout.sh index 14835a4aa9..6caa9fdcc6 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -12,6 +12,7 @@ new= new_name= force= branch= +track= newbranch= newbranch_log= merge= @@ -33,7 +34,10 @@ while [ "$#" != "0" ]; do die "git checkout: we do not like '$newbranch' as a branch name." ;; "-l") - newbranch_log=1 + newbranch_log=-l + ;; + "--track"|"--no-track") + track="$arg" ;; "-f") force=1 @@ -85,6 +89,11 @@ while [ "$#" != "0" ]; do esac done +case "$new_branch,$track" in +,--*) + die "git checkout: --track and --no-track require -b" +esac + case "$force$merge" in 11) die "git checkout: -f and -m are incompatible" @@ -235,11 +244,7 @@ fi # if [ "$?" -eq 0 ]; then if [ "$newbranch" ]; then - if [ "$newbranch_log" ]; then - mkdir -p $(dirname "$GIT_DIR/logs/refs/heads/$newbranch") - touch "$GIT_DIR/logs/refs/heads/$newbranch" - fi - git-update-ref -m "checkout: Created from $new_name" "refs/heads/$newbranch" $new || exit + git-branch $track $newbranch_log "$newbranch" "$new_name" || exit branch="$newbranch" fi if test -n "$branch" |