Only copy a commit if it has at least one nonidentical parent.
This is a simplification of the previous logic. I don't *think* it'll break
anything.
Results in far fewer useless merge commmits when playing with gitweb in the
git project:
git subtree split --prefix=gitweb --annotate='(split) ' 0a8f4f0^^..f2e7330
--onto=1130ef3
...and it doesn't *seem* to eliminate anything important.
diff --git a/git-subtree.sh b/git-subtree.sh
index ffd3e0b..90e22ad 100755
--- a/git-subtree.sh
+++ b/git-subtree.sh
@@ -258,6 +258,7 @@
assert [ -n "$tree" ]
identical=
+ nonidentical=
p=
gotparents=
for parent in $newparents; do
@@ -266,6 +267,8 @@
if [ "$ptree" = "$tree" ]; then
# an identical parent could be used in place of this rev.
identical="$parent"
+ else
+ nonidentical="$parent"
fi
# sometimes both old parents map to the same newparent;
@@ -283,7 +286,7 @@
fi
done
- if [ -n "$identical" -a "$gotparents" = " $identical" ]; then
+ if [ -n "$identical" -a -z "$nonidentical" ]; then
echo $identical
else
copy_commit $rev $tree "$p" || exit $?