Re: [PATCH 3/8] Clean up work-tree handling
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jul 28, 2007, 19:38 UTC
- Message-ID
- <Pine.LNX.4.64.0707282033120.14781@racer.site>
- In-Reply-To
- <7vd4ycsrrt.fsf@assigned-by-dhcp.cox.net>
Hi,
On Sat, 28 Jul 2007, Junio C Hamano wrote:
Show 11 quoted lines
> Outside of a work tree, I think the only two semi-sensible behaviours > exist. Either tell the user that we cannot understand what "." should > mean in that context and error out (IOW, "Not inside a work tree"), or > assume that the user meant "from the top". So in such a case, if we do > not want to error out to make things more "convenient", one possibility > would be: > > * give empty as prefix; > > * give absolute or cwd relative path to the work tree for cdup > (it would not be a sequence of ../ anyway in this case).
I am happy that you agree with the way I implemented it...
> I think this is in line with the traditional behaviour when GIT_DIR is > explicitly given. We assume the cwd is the toplevel, and return empty > prefix and empty cdup.
Yes, I want that behaviour.
Show 7 quoted lines
> Having said that, I am not convinced that "assume toplevel outside of a > work tree" is a win for the end users. If the command errors out with a > message telling the user that relative path does not make sense from > outside a work tree, the user would understand. If the command does not > error out but always works relative to the toplevel without explanation, > it might confuse the user more until the he realizes "assume toplevel > outside of a work tree" is the rule that is applying to his case.
There are two reasons against that...
- it is really convenient to be able to say "git add .vimrc" (think Martin Krafft's desired setup). Let's just put some uppercase warning at the side of --work-tree in git-init.txt to tell the user about the behaviour.
- the implementation of "you are not in the worktree" would not be elegant: "git log" should succeed, "git log dir/file" should not.
Ciao, Dscho