From 227f78114752eee2e8ae3368089716d73d32dd8b Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Wed, 26 Aug 2009 10:43:43 -0400 Subject: [PATCH] Fix behaviour if you have a branch named the same as your --prefix We were trying to 'git checkout $prefix', which is ambiguous if $prefix names a directory *and* a branch. Do 'git checkout -- $prefix' instead. The main place this appeared was in 'git subtree add'. Reported by several people. --- git-subtree.sh | 2 +- test.sh | 1 + todo | 6 ------ 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/git-subtree.sh b/git-subtree.sh index f7d2fe408..b7c741cfd 100755 --- a/git-subtree.sh +++ b/git-subtree.sh @@ -426,7 +426,7 @@ cmd_add() debug "Adding $dir as '$rev'..." git read-tree --prefix="$dir" $rev || exit $? - git checkout "$dir" || exit $? + git checkout -- "$dir" || exit $? tree=$(git write-tree) || exit $? headrev=$(git rev-parse HEAD) || exit $? diff --git a/test.sh b/test.sh index 8283fadaa..bed7f2790 100755 --- a/test.sh +++ b/test.sh @@ -78,6 +78,7 @@ git init create main4 git commit -m 'main4' git branch -m master mainline +git branch subdir git fetch ../subproj sub1 git branch sub1 FETCH_HEAD diff --git a/todo b/todo index 3040b9f17..5e72b2e51 100644 --- a/todo +++ b/todo @@ -20,9 +20,6 @@ automated tests for --squash stuff - test.sh fails in msysgit? - sort error - see Thell's email - "add" command non-obviously requires a commitid; would be easier if it had a "pull" sort of mode instead @@ -43,9 +40,6 @@ should detect (and fix) it if it does. Otherwise the log message looks weird. - totally weird behavior in 'git subtree add' if --prefix matches - a branch name - "pull --squash" should do fetch-synthesize-merge, but instead just does "pull" directly, which doesn't work at all. -- 2.30.2