chiark
/
gitweb
/
~ian
/
topgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
recurse_deps(): Call itself, not needs_update(), recursively
[topgit.git]
/
tg.sh
diff --git
a/tg.sh
b/tg.sh
index 905fccf4e0fa0e5753d95d3cc477434d7f85f53c..4fef7796c53e59bc5829ca3a727c65a58e4eb3ab 100644
(file)
--- a/
tg.sh
+++ b/
tg.sh
@@
-60,11
+60,11
@@
setup_ours()
# measure_branch NAME [BASE]
measure_branch()
{
# measure_branch NAME [BASE]
measure_branch()
{
- _name="$1"; _base="$2"
- [ -n "$_base" ] || _base="refs/top-bases/$_name"
+ _
b
name="$1"; _base="$2"
+ [ -n "$_base" ] || _base="refs/top-bases/$_
b
name"
# The caller should've verified $name is valid
# The caller should've verified $name is valid
- _commits="$(git rev-list "$_name" ^"$_base" | wc -l)"
- _nmcommits="$(git rev-list --no-merges "$_name" ^"$_base" | wc -l)"
+ _commits="$(git rev-list "$_
b
name" ^"$_base" | wc -l)"
+ _nmcommits="$(git rev-list --no-merges "$_
b
name" ^"$_base" | wc -l)"
if [ $_commits -gt 1 ]; then
_suffix="commits"
else
if [ $_commits -gt 1 ]; then
_suffix="commits"
else
@@
-95,8
+95,8
@@
recurse_deps()
_cmd="$1"; shift
_name="$1"; # no shift
_depchain="$*"
_cmd="$1"; shift
_name="$1"; # no shift
_depchain="$*"
- depsfile="$(mktemp)"
- git cat-file blob "$_name:.topdeps" >"$depsfile"
+
_
depsfile="$(mktemp)"
+ git cat-file blob "$_name:.topdeps" >"$
_
depsfile"
_ret=0
while read _dep; do
if ! git rev-parse --verify "$_dep" >/dev/null 2>&1; then
_ret=0
while read _dep; do
if ! git rev-parse --verify "$_dep" >/dev/null 2>&1; then
@@
-111,13
+111,13
@@
recurse_deps()
# Shoo shoo, keep our environment alone!
[ -z "$_dep_is_tgish" ] ||
# Shoo shoo, keep our environment alone!
[ -z "$_dep_is_tgish" ] ||
- (
needs_update
"$_cmd" "$_dep" "$@") ||
+ (
recurse_deps
"$_cmd" "$_dep" "$@") ||
_ret=$?
eval "$_cmd"
_ret=$?
eval "$_cmd"
- done <"$depsfile"
+ done <"$
_
depsfile"
missing_deps="${missing_deps# }"
missing_deps="${missing_deps# }"
- rm "$depsfile"
+ rm "$
_
depsfile"
return $_ret
}
return $_ret
}
@@
-139,7
+139,7
@@
branch_needs_update()
# _dep needs to be synced with its base
echo ": $_dep $_depchain"
_ret=1
# _dep needs to be synced with its base
echo ": $_dep $_depchain"
_ret=1
- elif ! branch_contains "refs/top-bases/$
1
" "$_dep"; then
+ elif ! branch_contains "refs/top-bases/$
_name
" "$_dep"; then
# Some new commits in _dep
echo "$_dep $_depchain"
_ret=1
# Some new commits in _dep
echo "$_dep $_depchain"
_ret=1