[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