Browse Source

Merge remote branch 'origin/master'

* origin/master:
  Fixed regression with splitting out new subtree
  Use 'git merge -Xsubtree' when git version >= 1.7.0.
maint
Avery Pennarun 15 years ago
parent
commit
8e770bd389
  1. 22
      git-subtree.sh
  2. 9
      test.sh

22
git-subtree.sh

@ -257,6 +257,7 @@ find_existing_splits() @@ -257,6 +257,7 @@ find_existing_splits()
if [ -n "$main" -a -n "$sub" ]; then
debug " Prior: $main -> $sub"
cache_set $main $sub
cache_set $sub $sub
try_remove_previous "$main"
try_remove_previous "$sub"
fi
@ -573,7 +574,9 @@ cmd_split() @@ -573,7 +574,9 @@ cmd_split()
# ugly. is there no better way to tell if this is a subtree
# vs. a mainline commit? Does it matter?
if [ -z $tree ]; then
cache_set $rev $rev
if [ -n "$newparents" ]; then
cache_set $rev $rev
fi
continue
fi

@ -638,11 +641,20 @@ cmd_merge() @@ -638,11 +641,20 @@ cmd_merge()
debug "New squash commit: $new"
rev="$new"
fi
if [ -n "$message" ]; then
git merge -s subtree --message="$message" $rev

version=$(git version)
if [ "$version" \< "git version 1.7" ]; then
if [ -n "$message" ]; then
git merge -s subtree --message="$message" $rev
else
git merge -s subtree $rev
fi
else
git merge -s subtree $rev
if [ -n "$message" ]; then
git merge -Xsubtree="$prefix" --message="$message" $rev
else
git merge -Xsubtree="$prefix" $rev
fi
fi
}


9
test.sh

@ -294,6 +294,15 @@ git subtree split --prefix subdir --branch mainsub4 @@ -294,6 +294,15 @@ git subtree split --prefix subdir --branch mainsub4
# but it wasn't, because it's cache was not set to itself)
check_equal "$(git log --pretty=format:%P -1 mainsub4)" "$(git rev-parse sub3)"

mkdir subdir2
create subdir2/main-sub5
git commit -m "main-sub5"
git subtree split --prefix subdir2 --branch mainsub5

# also test that we still can split out an entirely new subtree
# if the parent of the first commit in the tree isn't empty,
# then the new subtree has accidently been attached to something
check_equal "$(git log --pretty=format:%P -1 mainsub5)" ""


# make sure no patch changes more than one file. The original set of commits

Loading…
Cancel
Save