On Mon, Apr 15, 2013 at 6:19 PM, Ramkumar Ramachandra
> It doesn't make sense as a command-line option, because it is "magic"
> that kicks in only when git clone is executed inside an existing git
> worktree. The point is that the user doesn't have to remember
> anything special: a normal git clone already does the right thing
> outside a git worktree; my proposal is to make it do the right thing
> inside a git worktree as well. Although I'm not against allowing a
> user to create a "full clone" inside a git repository by overriding
> clone.submoduleGitDir via a command-line option, I really cannot see
> why this would be anything but rare. Why would a user *want* a full
> clone inside a git worktree?
If a user is inside .git, I believe setup_git_directory() will also
find correct gitdir. In that case, we do not want magic (i.e. only do
your magic when you are inside worktree). Still I'd rather see no
magic (i.e. command line option) first. Let people try it out for a
while. If people like it and find it inconvenient, magic can come
later. I suspect you might want more magic in other places. Maybe if
you hold it back until you see full picture, you'll only need a few
new config keys (instead of one per separate magic).
> Unfortunately, this patch is in pathetic shape and is an RFC for
> three reasons:
> 1. I've used setup_git_directory_gently() at the start of
> builtin/clone.c to check if I'm inside a git directory. This
> breaks a lot of existing tests (I'm yet to understand these
> failures fully).
> 2. setup_git_directory_gently() has the side-effect of changing the
> current directory and calling set_git_work_tree(), both of which
> must be done away with if we want the rest of clone.c to work.
> I've hacked around the issue in a very dirty manner. What is the
> solution to this?
Just do what scripts do: spawn a process to run rev-parse so that it
does not mess up the main process. You might be able to introduce
"dry-run" mode for setup_git_directory(), but that won't be easy.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html