[PATCH 4/5] dim: Make branch_to_remote more robust

Daniel Vetter daniel.vetter at ffwll.ch
Wed May 23 07:27:03 UTC 2018


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 at intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
 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



More information about the dim-tools mailing list