[maintainer-tools PATCH RFC 2/3] dim: fix git directory handling

Andrzej Hajda a.hajda at samsung.com
Fri Dec 14 13:38:51 UTC 2018


Assumption that git directory is always located at REPO/.git is incorrect,
especially in case of git worktrees. There is already function to deal
with it correctly - git_dir, let's then use it.

Signed-off-by: Andrzej Hajda <a.hajda at samsung.com>
---
 dim | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/dim b/dim
index df66c58..3afa8b6 100755
--- a/dim
+++ b/dim
@@ -1088,12 +1088,7 @@ function dim_backmerge
 
 	git merge --rerere-autoupdate --no-commit $upstream >& /dev/null || true
 
-	if [[ -d .git ]]; then
-		patch_file=".git"
-	else
-		patch_file=$(cut -d ' ' -f 2 .git)
-	fi
-	patch_file=$patch_file/MERGE_MSG
+	patch_file=$(git_dir)/MERGE_MSG
 
 
 	cat > $patch_file <<-HERE
@@ -1340,7 +1335,7 @@ dim_alias_mrr=magic-rebase-resolve
 function dim_magic_rebase_resolve
 {
 	git diff HEAD | patch -p1 -R
-	dim_magic_patch < .git/rebase-merge/patch
+	dim_magic_patch < $(git_dir)/rebase-merge/patch
 	make $DIM_MAKE_OPTIONS
 	git add -u
 	git rebase --continue
@@ -2102,7 +2097,7 @@ function setup_aux_checkout # name url directory
 			git clone --reference=$DIM_PREFIX/$DIM_REPO/.git $url $dir
 			cd $dir
 			git config remote.origin.url $url
-			echo "$DIM_PREFIX/$DIM_REPO/.git/objects" > .git/objects/info/alternates
+			echo "$(git_dir $DIM_PREFIX/$DIM_REPO)/objects" > $(git_dir)/objects/info/alternates
 			git repack -a -d -l
 			remote=origin
 		fi
@@ -2132,7 +2127,7 @@ function dim_setup
 	fi
 	cd $DIM_PREFIX
 
-	if [ ! -d $DIM_PREFIX/$DIM_REPO/.git ]; then
+	if [ ! -d $(git_dir $DIM_PREFIX/$DIM_REPO) ]; then
 		echoerr "No git checkout found in $DIM_PREFIX/$DIM_REPO."
 		echoerr "Please set up your maintainer linux repository at $DIM_PREFIX/$DIM_REPO with"
 		echoerr "    cd $DIM_PREFIX"
-- 
2.17.1



More information about the dim-tools mailing list