From: Avery Pennarun Date: Fri, 24 Apr 2009 21:05:14 +0000 (-0400) Subject: Added a --onto option, but it's so complicated I can't tell if it works. X-Git-Tag: v1.7.11-rc0~176^2~87 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=33ff583ad7a52edb5ed9d869109e04c846d6209d;p=git.git Added a --onto option, but it's so complicated I can't tell if it works. --- diff --git a/git-subtree.sh b/git-subtree.sh index af1d332e2..7e1707ae2 100755 --- a/git-subtree.sh +++ b/git-subtree.sh @@ -13,7 +13,7 @@ git subtree does foo and bar! h,help show the help q quiet v verbose -onto= existing subtree revision to connect, if any +onto= existing subtree revision to search for parent rejoin merge the new branch back into HEAD " eval $(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?) @@ -172,6 +172,16 @@ cmd_split() debug "Splitting $dir..." cache_setup || exit $? + if [ -n "$onto" ]; then + echo "Reading history for $onto..." + git rev-list $onto | + while read rev; do + # the 'onto' history is already just the subdir, so + # any parent we find there can be used verbatim + cache_set $rev $rev + done + fi + unrevs="$(find_existing_splits "$dir" "$revs")" git rev-list --reverse --parents $revs $unrevs -- "$dir" |