Browse Source

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.
maint
Avery Pennarun 16 years ago
parent
commit
227f781147
  1. 2
      git-subtree.sh
  2. 1
      test.sh
  3. 6
      todo

2
git-subtree.sh

@ -426,7 +426,7 @@ cmd_add() @@ -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 $?

1
test.sh

@ -78,6 +78,7 @@ git init @@ -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

6
todo

@ -20,9 +20,6 @@ @@ -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 @@ @@ -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.


Loading…
Cancel
Save