Hi, On Tue, Jul 15, 2008 at 04:19:30PM +0100, Johannes Schindelin wrote: > On Tue, 15 Jul 2008, Petr Baudis wrote: > > > Consider the scenario when someone makes a symlink into a working tree > > subdirectory at an unrelated place, then attempts to work inside the > > symlinked directory. The scenario is a bit unwieldly, but most of > > the Git will handle it fine - except git rev-parse --show-cdup. That > > will output a sequence of ../ which will work wrong inside the symlink > > using shell cd builtin. > > Short version: do not use symlinks in the working directory, if you do not > want to track the _symlink_. > > Long version: there are a lot of problems with that, and --show-cdup is > the least of the problems. A checkout, for example, is able to kill the > symlink and check out a fresh copy of the subdirectory. > > AFAICT this is a concious decision: If you want to track a symlink, track > a symlink, but if you want to track a subdirectory, you will have to track > a subdirectory, and it cannot be a symlink. no, no, this is for the scenario other way around: you have a normal subdirectory in the working tree, and point a symlink _at_ it from $somewhere_else. Then you try to work in $somewhere_else/symlink. > > This patch changes --show-cdup to always show absolute workdir path > > instead. I think this should hopefully cause no compatibility problems; > > the testsuite is passing fine, at least. > > See the thread where I proposed a change like this, back with the infamous > worktree desaster, and Junio NACKed; or the thread where Linus rightfully > insists that git_dir should be relative if possible, for performance > reasons. I see, <7vk5sly3h9.fsf@xxxxxxxxxxxxxxxxxxxxxxxx>. But noone was aware of this possible user case. Performance reasons sound reasonable, though I'm not really sure if for cdup in particular this ever matters. P.S.: Either way, there is a possible workaround to tell git about the working directory manually using git --work-tree=... that I missed to mention on IRC, Yves. -- Petr "Pasky" Baudis GNU, n. An animal of South Africa, which in its domesticated state resembles a horse, a buffalo and a stag. In its wild condition it is something like a thunderbolt, an earthquake and a cyclone. -- A. Pierce -- 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