Re: handle_alias() inside .git dir

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

 



On Sat, Feb 02, 2008 at 04:02:20AM -0500, Kevin Ballard wrote:

> This happens because setup_git_directory_gently() ends up setting  
> GIT_DIR_ENVIRONMENT to "." if it detects that we are in the .git  
> directory, and then a subsequent call to setup_git_directory() calls  
> setup_git_directory_gently() again, which sees the GIT_DIR_ENVIRONMENT  
> and ends up calling set_work_tree(). The comment to set_work_tree() says 
> it's only called if GIT_DIR is set and calls what it does "old behavior". 
> I assume it exists for some sort of backwards compatibility, but in quick 
> testing simply commenting out line 266 of setup.c (the call to 
> set_work_tree) makes `git st` work as expected. I'm not sure if this will 
> have any adverse effect on anything else. Does anybody know if this will 
> cause problems?

No, I don't think that's right. That call is there for people who have
explicitly set GIT_DIR to use their cwd as the working tree, wherever it
may be.

The problem is that setup_git_directory_gently actually _sets_ GIT_DIR.
So the next time through when we call setup_git_directory_gently again,
it thinks you have set it in the environment, which has the special
meaning.

Unfortunately, it doesn't look like there's a simple fix. Because the
semantics of the two are related, I think we need to set GIT_WORK_TREE
whenever we set GIT_DIR, and we need some way of setting GIT_WORK_TREE
to a value that means "I don't have a work tree."

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