@ -55,11 +55,13 @@ arg_split_annotate=
arg_addmerge_squash=
arg_addmerge_squash=
arg_addmerge_message=
arg_addmerge_message=
indent=0
# Usage: debug [MSG...]
# Usage: debug [MSG...]
debug () {
debug () {
if test -n "$arg_debug"
if test -n "$arg_debug"
then
then
printf "%s\n" "$*" >&2
printf "%$(($indent * 2))s%s\n" '' "$*" >&2
fi
fi
}
}
@ -251,17 +253,17 @@ cache_miss () {
done
done
}
}
# Usage: check_parents PARENTS_EXPR INDENT
# Usage: check_parents PARENTS_EXPR
check_parents () {
check_parents () {
assert test $# = 2
assert test $# = 1
missed=$(cache_miss "$1") || exit $?
missed=$(cache_miss "$1") || exit $?
local indent=$(($2 + 1))
local indent=$(($indent + 1))
for miss in $missed
for miss in $missed
do
do
if ! test -r "$cachedir/notree/$miss"
if ! test -r "$cachedir/notree/$miss"
then
then
debug "incorrect order: $miss"
debug "incorrect order: $miss"
process_split_commit "$miss" "" "$indent"
process_split_commit "$miss" ""
fi
fi
done
done
}
}
@ -314,6 +316,8 @@ try_remove_previous () {
find_latest_squash () {
find_latest_squash () {
assert test $# = 1
assert test $# = 1
debug "Looking for latest squash ($dir)..."
debug "Looking for latest squash ($dir)..."
local indent=$(($indent + 1))
dir="$1"
dir="$1"
sq=
sq=
main=
main=
@ -360,6 +364,8 @@ find_latest_squash () {
find_existing_splits () {
find_existing_splits () {
assert test $# = 2
assert test $# = 2
debug "Looking for prior splits..."
debug "Looking for prior splits..."
local indent=$(($indent + 1))
dir="$1"
dir="$1"
rev="$2"
rev="$2"
main=
main=
@ -668,12 +674,11 @@ ensure_valid_ref_format () {
die "'$1' does not look like a ref"
die "'$1' does not look like a ref"
}
}
# Usage: process_split_commit REV PARENTS INDENT
# Usage: process_split_commit REV PARENTS
process_split_commit () {
process_split_commit () {
assert test $# = 3
assert test $# = 2
local rev="$1"
local rev="$1"
local parents="$2"
local parents="$2"
local indent=$3
if test $indent -eq 0
if test $indent -eq 0
then
then
@ -688,6 +693,7 @@ process_split_commit () {
progress "$revcount/$revmax ($createcount) [$extracount]"
progress "$revcount/$revmax ($createcount) [$extracount]"
debug "Processing commit: $rev"
debug "Processing commit: $rev"
local indent=$(($indent + 1))
exists=$(cache_get "$rev") || exit $?
exists=$(cache_get "$rev") || exit $?
if test -n "$exists"
if test -n "$exists"
then
then
@ -696,7 +702,7 @@ process_split_commit () {
fi
fi
createcount=$(($createcount + 1))
createcount=$(($createcount + 1))
debug "parents: $parents"
debug "parents: $parents"
check_parents "$parents" "$indent"
check_parents "$parents"
newparents=$(cache_get $parents) || exit $?
newparents=$(cache_get $parents) || exit $?
debug "newparents: $newparents"
debug "newparents: $newparents"
@ -838,7 +844,7 @@ cmd_split () {
eval "$grl" |
eval "$grl" |
while read rev parents
while read rev parents
do
do
process_split_commit "$rev" "$parents" 0
process_split_commit "$rev" "$parents"
done || exit $?
done || exit $?
latest_new=$(cache_get latest_new) || exit $?
latest_new=$(cache_get latest_new) || exit $?