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 <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
---
 dim | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/dim b/dim
index ff9e572726cb..dbd2c9a0f740 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
-- 
2.17.0

_______________________________________________
dim-tools mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dim-tools

Reply via email to