Re: [BUG] git_path() returns relative paths
From: Duy Nguyen <hidden>
Date: 2016-06-15 22:58:16
On Sat, Jul 27, 2013 at 11:05 PM, Ramkumar Ramachandra [off-list ref] wrote:
Here's your reduced testcase. Just point mygit to a HEAD build. #!/bin/sh mygit=~/src/git/git cd /tmp $mygit clone https://github.com/artagnon/clayoven cd clayoven $mygit submodule add https://github.com/lewang/flx .elisp/flx $mygit commit -a -m "Added submodule" cd /tmp ln -s clayoven/.elisp cd .elisp/flx EDITOR="emacs -Q" git commit --amend # buffer-file-name = "/tmp/.git/modules/.elisp/flx/COMMIT_EDITMSG"
Here cwd is /tmp/.elisp/flx but "setup: cwd: " returns /tmp/clayoven/.elisp/flx. The COMMIT_EDITMSG path is ../../.git/modules/.elisp/flx/COMMIT_EDITMSG. If you follow the former cwd (without symlink resolution), you end up at /tmp/.git/modules. If you follow the latter cwd, you end up at /tmp/clayoven/.git/modules... I think instead of letting the kernel walk the path, emacs does it by itself. Still looking for documents about this behavior..
Note that this is emacs 24.3. I used -Q to make sure that none of my init magic (magit etc.) was responsible for changing directories or doing something equally stupid. However, considering that it's impossible to reproduce the problem with either cat or vim as the EDITOR, you might be inclined to classify this as an Emacs bug. In that case, why can't I reproduce it without submodules? I'm going off to eat cake before I tear my hair out in frustration.
-- Duy