When using worktree, the src repo might already have a master branch,
which would make dim setup fail. Use a different name to avoid
clashes. dim_update_branches is also expecting the branch to be
called maintainer-tools.

Signed-off-by: Daniele Ceraolo Spurio <[email protected]>
---
 dim | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/dim b/dim
index 3d6548568b56..78d69a5bd864 100755
--- a/dim
+++ b/dim
@@ -2082,25 +2082,31 @@ function dim_status
        done
 }
 
-function setup_aux_checkout # name url directory
+function setup_aux_checkout # name url directory [branch]
 {
-       local name url dir remote
+       local name url dir remote branch
 
        name=$1
        url=$2
        dir=$3
 
+       if [[ $# -eq 4 ]]; then
+               branch=$4
+       else
+               branch=$name
+       fi
+
        echo "Setting up $dir ..."
 
        if [ ! -d $dir ]; then
                if git help worktree &> /dev/null ; then
                        cd $DIM_PREFIX/$DIM_REPO
                        remote=$(url_to_remote $url)
-                       if ! git_branch_exists $name ; then
+                       if ! git_branch_exists $branch ; then
                                git_fetch_helper $remote
-                               git branch --track $name $remote/$name
+                               git branch --track $branch $remote/$name
                        fi
-                       git worktree add $DIM_PREFIX/$dir $name
+                       git worktree add $DIM_PREFIX/$dir $branch
                else
                        git clone --reference=$DIM_PREFIX/$DIM_REPO/.git $url 
$dir
                        cd $dir
@@ -2113,8 +2119,8 @@ function setup_aux_checkout # name url directory
                cd $dir
                remote=$(url_to_remote $url)
        fi
-       if ! git_branch_exists $name ; then
-               git checkout -t $remote/$name
+       if ! git_branch_exists $branch ; then
+               git checkout $branch -t $remote/$name
        fi
        cd - > /dev/null
 }
@@ -2146,7 +2152,7 @@ function dim_setup
 
        cd $DIM_PREFIX
 
-       setup_aux_checkout master $maintainer_tools_https maintainer-tools
+       setup_aux_checkout master $maintainer_tools_https maintainer-tools 
maintainer-tools
 
        setup_aux_checkout rerere-cache $drm_tip_ssh drm-rerere
 
-- 
2.19.1

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

Reply via email to