From b9de53532c3e7aa6b01aa188e0f0f17a266c099d Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Sat, 25 Apr 2009 00:06:45 -0400 Subject: [PATCH] Handle it successfully if a given parent commit has no parents. --- git-subtree.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/git-subtree.sh b/git-subtree.sh index f2a1c6aae4..aeafadac95 100755 --- a/git-subtree.sh +++ b/git-subtree.sh @@ -125,6 +125,16 @@ cache_set() echo "$newrev" >"$cachedir/$oldrev" } +# if a commit doesn't have a parent, this might not work. But we only want +# to remove the parent from the rev-list, and since it doesn't exist, it won't +# be there anyway, so do nothing in that case. +try_remove_previous() +{ + if git rev-parse "$1^" >/dev/null 2>&1; then + echo "^$1^" + fi +} + find_existing_splits() { debug "Looking for prior splits..." @@ -140,7 +150,8 @@ find_existing_splits() if [ -n "$main" -a -n "$sub" ]; then debug " Prior: $main -> $sub" cache_set $main $sub - echo "^$main^ ^$sub^" + try_remove_previous "$main" + try_remove_previous "$sub" main= sub= fi