X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg.sh;h=8c174fbff4a2caadfabcaadc47d0a2afaf4d5814;hp=3af2cd8bbbfa78b0f7826192cffab929b4b54586;hb=b725fc951a37854fc65945ac5bcab3bc61ccbd94;hpb=ad4ba21f04e5c36b258450a886a104351bcef8da diff --git a/tg.sh b/tg.sh index 3af2cd8..8c174fb 100644 --- a/tg.sh +++ b/tg.sh @@ -136,6 +136,7 @@ branch_annihilated() # of the whole function. # If recurse_deps() hits missing dependencies, it will append # them to space-separated $missing_deps list and skip them. +# remote dependencies are processed if no_remotes is unset. recurse_deps() { _cmd="$1"; shift @@ -143,9 +144,9 @@ recurse_deps() _depchain="$*" _depsfile="$(mktemp -t tg-depsfile.XXXXXX)" - # Check also our base against remote base. Checking our head - # against remote head has to be done in the helper. - if has_remote "top-bases/$_name"; then + # If no_remotes is unset check also our base against remote base. + # Checking our head against remote head has to be done in the helper. + if test -z "$no_remotes" && has_remote "top-bases/$_name"; then echo "refs/remotes/$base_remote/top-bases/$_name" >>"$_depsfile" fi @@ -226,7 +227,7 @@ needs_update() # branch_empty NAME branch_empty() { - [ -z "$(git diff-tree "refs/top-bases/$1" "$1" | fgrep -v " .top")" ] + [ -z "$(git diff-tree "refs/top-bases/$1" "$1" -- | fgrep -v " .top")" ] } # switch_to_base NAME [SEED] @@ -340,8 +341,9 @@ setup_hook "pre-commit" ## Dispatch # We were sourced from another script for our utility functions; -# this is set by hooks. -[ -z "$tg__include" ] || return 0 +# this is set by hooks. Skip the rest of the file. A simple return doesn't +# work as expected in every shell. See http://bugs.debian.org/516188 +if [ -z "$tg__include" ]; then if [ "$1" = "-r" ]; then shift @@ -374,4 +376,6 @@ help|--help|-h) . "@cmddir@"/tg-$cmd;; esac +fi + # vim:noet