Permalink
Browse files

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.
  • Loading branch information...
1 parent 39ee6ec commit 6f2012cdc021f6b47ed19bc7fe64159ce9eeda8a @apenwarr committed Oct 2, 2009
Showing with 5 additions and 9 deletions.
  1. +3 −3 git-subtree.sh
  2. +2 −2 test.sh
  3. +0 −4 todo
View
6 git-subtree.sh
@@ -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
View
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
View
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.

0 comments on commit 6f2012c

Please sign in to comment.