From 49cf82288aac5f0dcb152e2d75cd340e48d9e760 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Sun, 26 Apr 2009 17:07:16 -0400 Subject: [PATCH] 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. --- git-subtree.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 $? -- 2.30.2