Re: [PATCH] git rev-parse: Fix --show-cdup inside symlinked directory
- From
- Yves Orton <yves.orton@booking.com>
- Date
- Jul 15, 2008, 16:41 UTC
- Message-ID
- <1216140100.19334.189.camel@gemini>
- In-Reply-To
- <20080715154036.GR10151@machine.or.cz>
On Tue, 2008-07-15 at 17:40 +0200, Petr Baudis wrote:
> 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.
Yes correct. We have a number of different repositories like so:
banana.git/apps banana.git/lib orange.git/config kiwi.git/refdata
and its convenient for many of our existing apps to be able to symlink them all together into a common tree
joined/apps -> banana.git/apps joined/lib -> banana.git/lib joined/config -> orange.git/config joined/refdata -> kiwi.git/refdata
this way for instance we can swap bits around easily on the fly and say, restart a webserver or whatever.
Currently we can do this and all our other stuff works, and you can /mostly/ work with git from the "joined" tree, with the exception of git pull --rebase and apparently anything else that relies on --show-cdup
Show 12 quoted lines
> > > 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@assigned-by-dhcp.cox.net>. 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.
Would it be so bad to detect if the show-cdup actually resolves to the right place, and if it doesnt go absolute?
> > 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.
Hmm, am i using it wrong then?
[dmq@somewhere apps]$ git-rev-parse --git-dir /home/dmq/git_tree/main/.git [dmq@somewhere apps]$ git --work-tree="$(git-rev-parse --git-dir)" pull --rebase /usr/bin/git-sh-setup: line 139: cd: .git: No such file or directory Unable to determine absolute path of git directory
cheers, yves ps: not on list, please cc me on replies (sorry for the hassle)