From: phillip.lord@russet.org.uk (Phillip Lord)
To: Glenn Morris <rgm@gnu.org>
Cc: 23769@debbugs.gnu.org
Subject: bug#23769: 25.0.95; Mode Line breakage in vc-git
Date: Tue, 14 Jun 2016 22:30:27 +0100 [thread overview]
Message-ID: <87shwf1mrw.fsf@russet.org.uk> (raw)
In-Reply-To: <olh27ohtb.fsf@fencepost.gnu.org> (Glenn Morris's message of "Tue, 14 Jun 2016 12:29:04 -0400")
Glenn Morris <rgm@gnu.org> writes:
> AFAIK Emacs doesn't support GIT_DIR, see eg https://debbugs.gnu.org/5344 .
I think I have tracked the cause of the problem.
It happens if a test opens a file in a subdirectory of the git root.
When the file is opened Emacs checks to see whether the file is
versioned. Somewhere down the line Emacs calls vc-git-working-revision,
which eventually results in invocation of `git symbolic-ref HEAD`.
All is good.
Unless, GIT_DIR is set to ".git". Now, `git symbolic-ref HEAD` fails in
subdirectories because GIT_DIR is still set to .git, when the .git
directory is in the root. git symbolic-ref fails with 128 "Fatal: Not a
git repository".
Unfortunately, this is exactly the situation on a pre-commit hook. Git
changes working directory to the root of the git repository, and then
sets GIT_DIR to be .git.
Potential solutions:
1) Ignore return values from git (fail silently)
2) Unset GIT_DIR (but I don't know why it is set by git, and I assume it
is for some reason)
3) Run all vc-git commands from the root dir, and use fully qualified
names.
Will think further.
Phil
prev parent reply other threads:[~2016-06-14 21:30 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 11:16 bug#23769: 25.0.95; Mode Line breakage in vc-git Phillip Lord
2016-06-14 16:29 ` Glenn Morris
2016-06-14 17:03 ` Phillip Lord
2016-06-14 21:52 ` Dmitry Gutov
2016-06-14 22:21 ` Phillip Lord
2016-06-15 20:48 ` Phillip Lord
2016-06-15 21:02 ` Dmitry Gutov
2016-06-15 22:09 ` Phillip Lord
2016-06-15 22:27 ` Noam Postavsky
2016-06-15 23:20 ` Dmitry Gutov
2016-06-16 7:11 ` Phillip Lord
2016-06-16 7:45 ` Phillip Lord
2016-06-15 23:25 ` Dmitry Gutov
2016-06-16 7:41 ` Phillip Lord
2016-06-16 11:25 ` Dmitry Gutov
2016-06-16 16:06 ` Dmitry Gutov
2016-06-16 16:54 ` Noam Postavsky
2016-06-16 16:59 ` Dmitry Gutov
2016-06-16 21:47 ` Phillip Lord
2016-06-16 22:13 ` Dmitry Gutov
2016-06-16 22:23 ` Phillip Lord
2016-06-16 22:31 ` Dmitry Gutov
2016-06-16 22:42 ` Phillip Lord
2016-06-17 2:41 ` Dmitry Gutov
2016-06-17 3:37 ` Noam Postavsky
2016-06-17 6:54 ` Eli Zaretskii
2016-06-17 12:06 ` Dmitry Gutov
2016-06-17 13:21 ` Eli Zaretskii
2016-06-17 13:54 ` Dmitry Gutov
2016-06-17 15:09 ` Phillip Lord
2016-06-16 21:47 ` Phillip Lord
2016-06-16 22:04 ` Dmitry Gutov
2016-06-21 16:46 ` Dmitry Gutov
2016-06-21 20:45 ` Phillip Lord
2016-06-21 23:06 ` Dmitry Gutov
2016-06-15 21:56 ` John Wiegley
2016-06-14 21:30 ` Phillip Lord [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87shwf1mrw.fsf@russet.org.uk \
--to=phillip.lord@russet.org.uk \
--cc=23769@debbugs.gnu.org \
--cc=rgm@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.