Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
debug messages are off by default; use -d to enable.
author
Avery Pennarun
<apenwarr@gmail.com>
Sun, 26 Apr 2009 22:06:08 +0000
(18:06 -0400)
committer
Avery Pennarun
<apenwarr@gmail.com>
Sun, 26 Apr 2009 22:06:08 +0000
(18:06 -0400)
Instead of debug messages, we print a progress counter to stderr.
git-subtree.sh
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
34a82bd
)
diff --git
a/git-subtree.sh
b/git-subtree.sh
index e2e47f82ac9c86035d9ed9ab84a24e8bc7c7626e..39c377c173ac3e74006a2cfa2095f3692b557c9a 100755
(executable)
--- a/
git-subtree.sh
+++ b/
git-subtree.sh
@@
-15,6
+15,7
@@
git subtree pull --prefix=<prefix> <repository> <refspec...>
--
h,help show the help
q quiet
--
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
prefix= the name of the subdir to split out
options for 'split'
annotate= add a prefix to commit message of new commits
@@
-27,6
+28,7
@@
eval $(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)
require_work_tree
quiet=
require_work_tree
quiet=
+debug=
command=
onto=
rejoin=
command=
onto=
rejoin=
@@
-34,6
+36,13
@@
ignore_joins=
annotate=
debug()
annotate=
debug()
+{
+ if [ -n "$debug" ]; then
+ echo "$@" >&2
+ fi
+}
+
+say()
{
if [ -z "$quiet" ]; then
echo "$@" >&2
{
if [ -z "$quiet" ]; then
echo "$@" >&2
@@
-57,6
+66,7
@@
while [ $# -gt 0 ]; do
shift
case "$opt" in
-q) quiet=1 ;;
shift
case "$opt" in
-q) quiet=1 ;;
+ -d) debug=1 ;;
--annotate) annotate="$1"; shift ;;
--no-annotate) annotate= ;;
--prefix) prefix="$1"; shift ;;
--annotate) annotate="$1"; shift ;;
--no-annotate) annotate= ;;
--prefix) prefix="$1"; shift ;;
@@
-357,15
+367,21
@@
cmd_split()
# 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)
# 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
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
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"
debug " parents: $parents"
newparents=$(cache_get $parents)
debug " newparents: $newparents"