From 54f24fdf5691baa3dcc7252098efd13cc4fc1620 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Tue, 9 Sep 2008 21:38:23 +0200 Subject: [PATCH] has_remote(): Introduce to check if branch has remote counterpart --- tg-update.sh | 4 ++-- tg.sh | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/tg-update.sh b/tg-update.sh index 912c968..34fa6dc 100644 --- a/tg-update.sh +++ b/tg-update.sh @@ -100,8 +100,8 @@ merge_with="refs/top-bases/$name" ## Second, update our head with the remote branch -rname="refs/remotes/$base_remote/$name" -if [ -n "$base_remote" ] && ref_exists "$rname"; then +if has_remote "$name"; then + rname="refs/remotes/$base_remote/$name" if branch_contains "$name" "$rname"; then info "The $name head is up-to-date wrt. its remote branch." else diff --git a/tg.sh b/tg.sh index 0eec4d4..b2b9191 100644 --- a/tg.sh +++ b/tg.sh @@ -87,6 +87,13 @@ ref_exists() git rev-parse --verify "$@" >/dev/null 2>&1 } +# has_remote BRANCH +# Whether BRANCH has a remote equivalent (accepts top-bases/ too) +has_remote() +{ + [ -n "$base_remote" ] && ref_exists "remotes/$base_remote/$1" +} + # recurse_deps CMD NAME [BRANCHPATH...] # Recursively eval CMD on all dependencies of NAME. # CMD can refer to $_name for queried branch name, @@ -106,9 +113,8 @@ recurse_deps() _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. - _remotebase="refs/remotes/$base_remote/top-bases/$_name" - if [ -n "$base_remote" ] && ref_exists "$_remotebase"; then - echo "$_remotebase" >>"$_depsfile" + if has_remote "top-bases/$_name"; then + echo "refs/remotes/$base_remote/top-bases/$_name" >>"$_depsfile" fi git cat-file blob "$_name:.topdeps" >>"$_depsfile" @@ -147,7 +153,7 @@ branch_needs_update() { _dep_base_update= if [ -n "$_dep_is_tgish" ]; then - if [ -n "$base_remote" ] && ref_exists "refs/remotes/$base_remote/$_dep"; then + if has_remote "$_dep"; then branch_contains "$_dep" "refs/remotes/$base_remote/$_dep" || _dep_base_update=% fi # This can possibly override the remote check result; -- 2.11.4.GIT