On Sat, Jul 27, 2013 at 09:35:40PM +0530, Ramkumar Ramachandra wrote: > Duy Nguyen wrote: > > I was involved with this code (the gitdir setup code, not submodule) > > and am interested to know what's going on too. Could you produce a > > small script to reproduce it? > > 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" > > 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? How about something like this as a workaround for emacs? -- 8< -- diff --git a/editor.c b/editor.c index 27bdecd..fda3e41 100644 --- a/editor.c +++ b/editor.c @@ -37,7 +37,8 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en return error("Terminal is dumb, but EDITOR unset"); if (strcmp(editor, ":")) { - const char *args[] = { editor, path, NULL }; + char *rpath = realpath(path, NULL); + const char *args[] = { editor, rpath, NULL }; struct child_process p; int ret, sig; @@ -51,6 +52,7 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en sigchain_push(SIGINT, SIG_IGN); sigchain_push(SIGQUIT, SIG_IGN); ret = finish_command(&p); + free(rpath); sig = ret - 128; sigchain_pop(SIGINT); sigchain_pop(SIGQUIT); -- 8< -- > > I'm going off to eat cake before I tear my hair out in frustration. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html