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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Jun 2008, Johannes Schindelin wrote:

> 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?

> > -		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*
--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux