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.
This commit is contained in:
parent
33aaa697a2
commit
227f781147
@ -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
1
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
|
||||
|
6
todo
6
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.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user