git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* handle_alias() inside .git dir
@ 2008-02-02  9:02 Kevin Ballard
  2008-02-03  4:57 ` Jeff King
  0 siblings, 1 reply; 2+ messages in thread
From: Kevin Ballard @ 2008-02-02  9:02 UTC (permalink / raw)
  To: Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 1679 bytes --]

It seems that using any aliases while inside a .git dir will end up  
setting the work tree to the current dir, even though it's clearly not  
a work tree. This means that having an alias like `git config alias.st  
= status` and running `git st` inside a .git dir will proceed to spit  
out a listing that claims that every file in the project is missing  
rather than displaying an error about not being in a work tree like  
`git status` will show.

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?

Another option that seems like it should work is checking if we're a  
bare repo, and if not then setting the work tree to our parent dir,  
assuming any relevant config values or env variables aren't set that  
would point elsewhere. I would try and implement this but after  
looking at it for a few minutes, I fear 4AM is not the best of times  
to try and figure out how this code works.

-Kevin Ballard

-- 
Kevin Ballard
http://kevin.sb.org
kevin@sb.org
http://www.tildesoft.com



[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2432 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-02-03  4:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-02  9:02 handle_alias() inside .git dir Kevin Ballard
2008-02-03  4:57 ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).