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

Re: [PATCH v2] Make git_dir a path relative to work_tree in setup_work_tree()

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Jun 19, 2008, 16:12 UTC
Message-ID
<alpine.LNX.1.00.0806191146210.19665@iabervon.org>
In-Reply-To
<alpine.DEB.1.00.0806191510060.6439@racer>
On Thu, 19 Jun 2008, Johannes Schindelin wrote:
Show 14 quoted lines
> Hi,
> 
> On Wed, 18 Jun 2008, Daniel Barkalow wrote:
> 
> > diff --git a/setup.c b/setup.c
> > index d630e37..1643ee4 100644
> > --- a/setup.c
> > +++ b/setup.c
> > @@ -292,7 +292,8 @@ void setup_work_tree(void)
> >  	work_tree = get_git_work_tree();
> >  	git_dir = get_git_dir();
> >  	if (!is_absolute_path(git_dir))
> 
> I suspect it needs "work_tree &&" here.

I'm not clear on the semantics of !get_git_work_tree(); is a non-absolute path for git_dir right then?

Show 9 quoted lines
> > -		set_git_dir(make_absolute_path(git_dir));
> > +		set_git_dir(make_relative_path(make_absolute_path(git_dir),
> > +					       work_tree));
> >  	if (!work_tree || chdir(work_tree))
> >  		die("This operation must be run in a work tree");
> >  	initialized = 1;
> 
> All in all I am pretty surprised how easy it was.  I tried yesterday, for 
> half an hour, to come up with something sensible, and failed.

I was sure you'd come up with just this solution, because you'd just recently explained that make_absolute_path() means you can find when one path is in another path with a simple string compare. And, since we know what pwd is going to be...

	-Daniel
*This .sig left intentionally blank*
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 3 of 7 in “Make git_dir a path relative to work_tree in setup_work_tree()”
  1. Make git_dir a path relative to work_tree in setup_work_tree()Daniel Barkalow, Jun 19, 2008
  2. Johannes SchindelinJun 19, 2008
  3. Daniel BarkalowJun 19, 2008
  4. Johannes SchindelinJun 19, 2008
  5. Junio C HamanoJun 19, 2008
  6. Daniel BarkalowJun 19, 2008
  7. Linus TorvaldsJun 19, 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.