On Sat, May 22, 2010 at 08:35:39PM -0500, Jonathan Nieder wrote: > Without your patch applied, I get > > $ cd .git > $ git --work-tree=/tmp/git symbolic-ref HEAD > refs/heads/hello > > I should have done the following instead: > > $ worktree=$(pwd) > $ cd .git > $ git --work-tree="$worktree" symbolic-ref HEAD > fatal: ref HEAD is not a symbolic ref Thanks > > +char *get_relative_path(char *cwd, const char *dir) > > Looks reasonable. Should be const char *cwd. That is not possible, because we return a pointer to cwd plus an offset, which will be subsequently modified by strcat(). > > diff --git a/setup.c b/setup.c > > index 5716d90..67b5122 100644 > > --- a/setup.c > > +++ b/setup.c > > @@ -524,14 +524,18 @@ const char *setup_git_directory(void) > > const char *retval = setup_git_directory_gently(NULL); > > > > /* If the work tree is not the default one, recompute prefix */ > > if (inside_work_tree < 0) { > > If I understand correctly, you made two changes here: > > - interpret GIT_WORK_TREE and friends relative to .git instead of > the original cwd (by not calling chdir(retval) before > get_git_work_tree()) Oops > - make setup_git_directory stay in the last directory searched for a > .git directory instead of chdir-ing into the toplevel of the work tree. > > Are these safe changes to make? Indeed, if you put it that way, this change does not look good. Maybe I'll have a look at Nguyen's patches. > diff --git a/t/t1501-worktree.sh b/t/t1501-worktree.sh > index 9df3012..93bf92c 100755 > --- a/t/t1501-worktree.sh > +++ b/t/t1501-worktree.sh Thanks -- 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