summaryrefslogtreecommitdiff
path: root/admin/gitmerge.el
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2018-06-11 20:41:07 -0400
committerNoam Postavsky <npostavs@gmail.com>2018-06-18 20:02:04 -0400
commit5498acb5a2b4a19060d17c0e2ce0aec36ee684f9 (patch)
tree85eb75e45e6b6a830366c498d7a23c6bd2cac6cd /admin/gitmerge.el
parent91ebbbfa107c60db84e09d54d952ffd969821ccb (diff)
downloademacs-5498acb5a2b4a19060d17c0e2ce0aec36ee684f9.tar.gz
Stop assuming .git is a directory in gitmerge.el
* admin/gitmerge.el (gitmerge-maybe-resume): Use 'git rev-parse --git-dir' to find the git directory rather than assuming it is .git/ (that assumption fails for separated worktrees).
Diffstat (limited to 'admin/gitmerge.el')
-rw-r--r--admin/gitmerge.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index e676e8fa025..a123e0352d7 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -483,8 +483,12 @@ Throw an user-error if we cannot resolve automatically."
(defun gitmerge-maybe-resume ()
"Check if we have to resume a merge.
If so, add no longer conflicted files and commit."
- (let ((mergehead (file-exists-p
- (expand-file-name ".git/MERGE_HEAD" default-directory)))
+ (let ((mergehead
+ (file-exists-p
+ (expand-file-name
+ "MERGE_HEAD"
+ (car (process-lines
+ "git" "rev-parse" "--no-flags" "--git-dir")))))
(statusexist (file-exists-p gitmerge-status-file)))
(when (and mergehead (not statusexist))
(user-error "Unfinished merge, but no record of a previous gitmerge run"))