summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2018-05-22 11:04:10 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2018-05-31 14:56:24 +0200
commit83fcf28da0e114501739e4d4360eb1c101cb954c (patch)
tree9afa309ac5624a7c2238a730dc7080bd037dafa5
parentf7f2f9eac00b036d6f9dd093183ce0704c5da20b (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-xdim14
1 files changed, 11 insertions, 3 deletions
diff --git a/dim b/dim
index 00944941e29f..8eb7a3a17fa1 100755
--- a/dim
+++ b/dim
@@ -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