diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2018-05-22 11:04:10 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2018-05-31 14:56:24 +0200 |
commit | 83fcf28da0e114501739e4d4360eb1c101cb954c (patch) | |
tree | 9afa309ac5624a7c2238a730dc7080bd037dafa5 | |
parent | f7f2f9eac00b036d6f9dd093183ce0704c5da20b (diff) |
dim: Make branch_to_remote more robust
The old version relied on branch@{upstream}, which requires that
the branch is checked out. Instead use the indirection through the
abstract drm-tip repo.
v2: Questions from Jani:
- We still need the fallback path for non-managed branches like
rerere-cache or drm-intel-next.
- Also this change removes some of the implicit validation that the
branch has a local tracking branch. I only spotted one place where
an assert_branch was missing.
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
-rwxr-xr-x | dim | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -248,11 +248,18 @@ function pick_protocol_url # (git|ssh|https|whatever) url [url ...] function branch_to_remote # branch { - local branch remote + local branch remote repo branch=$1 - remote=$(git rev-parse --abbrev-ref --symbolic-full-name "$branch@{upstream}") - remote=${remote%%/*} + repo=$(branch_to_repo $branch) + + if [[ -z "$repo" ]] ; then + # fallback for special branches like rerere-cache + remote=$(git rev-parse --abbrev-ref --symbolic-full-name "$branch@{upstream}") + remote=${remote%%/*} + else + remote=$(repo_to_remote $repo) + fi echo $remote } @@ -1837,6 +1844,7 @@ function dim_tag_branch local branch remote tag branch=$1 + assert_branch $branch remote=$(branch_to_remote $branch) cd $DIM_PREFIX/$DIM_REPO |