Hi,
I noticed a regression in the latest master, and I've been trying to
debug it for 30 minutes now. I'm still clueless about the root cause,
but I'll list whatever I found so far:
I suddenly noticed that I wasn't able to commit to a certain
repository with submodules anymore. This was because git commit was
opening a COMMIT_EDITMSG in the wrong path. To reproduce the problem,
you need a setup like mine:
~/dotfiles is a repository containing submodules
~/.elisp is a symbolic link to ~/dotfiles/.elisp, a normal directory
~/.elisp/flx is the submodule repository to which I'm trying to commit
The buffer-file-name of COMMIT_EDITMSG comes out as
/home/artagnon/.git/modules/flx/.git/COMMIT_EDITMSG, which is
completely wrong because ~ does not even contain a .git.
So, I started debugging the issue with this patch:
diff --git a/builtin/commit.c b/builtin/commit.c
index 003bd7d..38a7c77 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -678,6 +678,9 @@ static int prepare_to_commit(const char
hook_arg2 = "";
}
+ char *buf = get_current_dir_name();
+ die("DBG: %s | %s", buf, git_path(commit_editmsg));
+
s->fp = fopen(git_path(commit_editmsg), "w");
if (s->fp == NULL)
die_errno(_("could not open '%s'"), git_path(commit_editmsg));
On master, commit returns:
fatal: DBG: /home/artagnon/.elisp/flx |
../../.git/modules/.elisp/flx/COMMIT_EDITMSG
When backported to v1.8.3.3, commit returns:
fatal: DBG: /home/artagnon/.elisp/flx |
/home/artagnon/dotfiles/.git/modules/.elisp/flx/COMMIT_EDITMSG
I tried looking through the logs to see what has changed in
path.c/environment.c, but have come up with nothing so far. I think
I'll have to resort to using a hammer like bisect now.
*scratches head*
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html