Re: builtin command's prefix question
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 5, 2007, 23:43 UTC
- Message-ID
- <7v8x48lnce.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <7vk5nsloa8.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 20 quoted lines
> I am not convinced this is giving any natural user experience, nor an > alternative: > > $ cd $HOME > $ GIT_WORK_TREE=$HOME; export GIT_WORK_TREE > $ cd $HOME/gits/vimrc.git > $ edit $HOME/.vimrc > $ git commit .vimrc > $ cd $HOME/gits/pinerc.git > $ edit $HOME/.pinerc > $ git commit .pinerc > > While I still think the combination is simply crazy and does not make > any sense, if enough users on the list agrees that it makes sense, I > wouldn't mind setup() did (1) to (3) mentioned above. The alternative > is simply to declare GIT_WORK_TREE without GIT_DIR is a nonsense and > either error error out or ignore GIT_WORK_TREE, which might be easier to > explain to people. > > Opinions?
Side note.
By saying the above, I do not mean it is nonsense to try supporting a work tree that is an overlay of disjoint set of work tree files from multiple repositories/projects. I do think it is a worthwhile goal to support such a layout.
What I do not like is the way the ugly workaround does it, by encouraging (rather, requiring) to issue git commands from a location that is completely separate from the actual editing of the content happens.
An independent issue of supporting such a overlayed work tree layout is what to do with .gitignore files. I think, especially with the recent addition of --exclude-standard to ls-files and setup_standard_excludes() in dir.c, we could have a per repository configuration that names the per repository exclude files, so that .gitignore-vim and .gitignore-pine can co-exist in $HOME, each excluding everything other than the project's own files.