From: Avery Pennarun Date: Sun, 26 Apr 2009 21:07:16 +0000 (-0400) Subject: Only copy a commit if it has at least one nonidentical parent. X-Git-Tag: v1.7.11-rc0~176^2~67 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=49cf82288aac5f0dcb152e2d75cd340e48d9e760;p=git.git 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 ffd3e0b86..90e22ad8b 100755 --- a/git-subtree.sh +++ b/git-subtree.sh @@ -258,6 +258,7 @@ copy_or_skip() assert [ -n "$tree" ] identical= + nonidentical= p= gotparents= for parent in $newparents; do @@ -266,6 +267,8 @@ copy_or_skip() 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 @@ copy_or_skip() 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 $?