On Thu, Feb 28, 2008 at 6:30 PM, Johannes Schindelin<Johannes.Schindelin@xxxxxx> wrote:> Hi,>>>> On Wed, 27 Feb 2008, Nguyễn Thái Ngọc Duy wrote:>> > @@ -336,24 +321,21 @@ const char *setup_git_directory_gently(int *nongit_ok)> > static char buffer[1024 + 1];> > const char *retval;> >> > + /*> > + * The old behaviour (which we retain here) is to set> > + * the work tree root to the cwd, unless overridden by> > + * the config, the command line, or GIT_WORK_TREE.> > + */> > if (!work_tree_env) {> > - retval = set_work_tree(gitdirenv);> > - /* config may override worktree */> > - if (check_repository_format_gently(nongit_ok))> > - return NULL;> > - return retval;> > + char buffer[PATH_MAX + 1];> > +> > + if (!getcwd(buffer, sizeof(buffer)))> > + die ("Could not get the current working directory");> > + git_work_tree_cfg = xstrdup(buffer);> > + inside_work_tree = 1;> > }> > - if (check_repository_format_gently(nongit_ok))> > - return NULL;> > - retval = get_relative_cwd(buffer, sizeof(buffer) - 1,> > - get_git_work_tree());> > - if (!retval || !*retval)> > - return NULL;> > - set_git_dir(make_absolute_path(gitdirenv));> > - if (chdir(work_tree_env) < 0)> > - die ("Could not chdir to %s", work_tree_env);> > - strcat(buffer, "/");> > - return retval;> > + check_repository_format_gently(nongit_ok);> > + return NULL;>> What about the situation where you are in a subdirectory of core.worktree?> You return prefix NULL? That's wrong. This is an intermediate patch. At the end of the series, you will seethat _gently() does not return prefix. I split it for easier review. > I am sorry, but with all these intrusive changes, I get a very uneasy> feeling. As uneasy as with the original series, which I tried to fix up,> not really succeeding. In constrast I feel good :) To me setup_git_directory*() at the endlook really nice. No chdir() all over the place(temporary chdir() for detecting .git does not count). It also gives achance to get rid of worktree to commands that do not care aboutworktree at all. > Ciao,> Dscho> -- Duy���m�ka����zwm���˛��m���ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f