If someone provides a --prefix that ends with slash, strip the slash.
Prefixes that differ only in the trailing slash should be considered identical. Also update the test to check that this works.
This commit is contained in:
parent
39ee6ecf7e
commit
6f2012cdc0
@ -102,7 +102,7 @@ esac
|
||||
if [ -z "$prefix" ]; then
|
||||
die "You must provide the --prefix option."
|
||||
fi
|
||||
dir="$prefix"
|
||||
dir="$(dirname "$prefix/.")"
|
||||
|
||||
if [ "$command" != "pull" ]; then
|
||||
revs=$(git rev-parse $default --revs-only "$@") || exit $?
|
||||
@ -175,7 +175,7 @@ find_latest_squash()
|
||||
sq=
|
||||
main=
|
||||
sub=
|
||||
git log --grep="^git-subtree-dir: $dir\$" \
|
||||
git log --grep="^git-subtree-dir: $dir/*\$" \
|
||||
--pretty=format:'START %H%n%s%n%n%b%nEND%n' HEAD |
|
||||
while read a b junk; do
|
||||
debug "$a $b $junk"
|
||||
@ -210,7 +210,7 @@ find_existing_splits()
|
||||
revs="$2"
|
||||
main=
|
||||
sub=
|
||||
git log --grep="^git-subtree-dir: $dir\$" \
|
||||
git log --grep="^git-subtree-dir: $dir/*\$" \
|
||||
--pretty=format:'START %H%n%s%n%n%b%nEND%n' $revs |
|
||||
while read a b junk; do
|
||||
case "$a" in
|
||||
|
4
test.sh
4
test.sh
@ -82,7 +82,7 @@ git branch subdir
|
||||
|
||||
git fetch ../subproj sub1
|
||||
git branch sub1 FETCH_HEAD
|
||||
git subtree add --prefix=subdir FETCH_HEAD
|
||||
git subtree add --prefix=subdir/ FETCH_HEAD
|
||||
|
||||
# this shouldn't actually do anything, since FETCH_HEAD is already a parent
|
||||
git merge -m 'merge -s -ours' -s ours FETCH_HEAD
|
||||
@ -118,7 +118,7 @@ create sub9
|
||||
git commit -m 'sub9'
|
||||
|
||||
cd ../mainline
|
||||
split2=$(git subtree split --annotate='*' --prefix subdir --rejoin)
|
||||
split2=$(git subtree split --annotate='*' --prefix subdir/ --rejoin)
|
||||
git branch split2 "$split2"
|
||||
|
||||
create subdir/main-sub10
|
||||
|
4
todo
4
todo
@ -36,10 +36,6 @@
|
||||
one of the other git tools that git-subtree calls. Should
|
||||
detect this situation and print the *real* problem.
|
||||
|
||||
In fact, the prefix should *not* end with slash, and we
|
||||
should detect (and fix) it if it does. Otherwise the
|
||||
log message looks weird.
|
||||
|
||||
"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