--
h,help show the help
q quiet
+d show debug messages
prefix= the name of the subdir to split out
options for 'split'
annotate= add a prefix to commit message of new commits
require_work_tree
quiet=
+debug=
command=
onto=
rejoin=
annotate=
debug()
+{
+ if [ -n "$debug" ]; then
+ echo "$@" >&2
+ fi
+}
+
+say()
{
if [ -z "$quiet" ]; then
echo "$@" >&2
shift
case "$opt" in
-q) quiet=1 ;;
+ -d) debug=1 ;;
--annotate) annotate="$1"; shift ;;
--no-annotate) annotate= ;;
--prefix) prefix="$1"; shift ;;
assert [ -n "$tree" ]
identical=
+ nonidentical=
p=
gotparents=
for parent in $newparents; do
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;
fi
done
- if [ -n "$identical" -a "$gotparents" = " $identical" ]; then
+ if [ -n "$identical" ]; then
echo $identical
else
copy_commit $rev $tree "$p" || exit $?
# We can't restrict rev-list to only $dir here, because some of our
# parents have the $dir contents the root, and those won't match.
# (and rev-list --follow doesn't seem to solve this)
- git rev-list --reverse --parents $revs $unrevs |
+ grl='git rev-list --reverse --parents $revs $unrevs'
+ revmax=$(eval "$grl" | wc -l)
+ revcount=0
+ createcount=0
+ eval "$grl" |
while read rev parents; do
- debug
+ revcount=$(($revcount + 1))
+ say -n "$revcount/$revmax ($createcount)\r"
debug "Processing commit: $rev"
exists=$(cache_get $rev)
if [ -n "$exists" ]; then
debug " prior: $exists"
continue
fi
+ createcount=$(($createcount + 1))
debug " parents: $parents"
newparents=$(cache_get $parents)
debug " newparents: $newparents"