git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git rev-parse: Fix --show-cdup inside symlinked directory

From
YOYves 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)

Previous: Petr BaudisNext: Yves Orton
Message 5 of 8 in “git-rev-parse --show-cdup returns a relative path instead of absolute (problem with git pull --rebase not finding the git dir)”
  1. Yves OrtonJul 15, 2008
  2. git rev-parse: Fix --show-cdup inside symlinked directoryPetr Baudis, Jul 15, 2008
  3. Johannes SchindelinJul 15, 2008
  4. Petr BaudisJul 15, 2008
  5. Yves OrtonJul 15, 2008
  6. Yves OrtonJul 15, 2008
  7. Rogan DawesJul 15, 2008
  8. Yves OrtonJul 15, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.