Re: [BUG?] Path limiting in "git log" when run from another subdir
On Mon, Sep 24, 2012 at 8:16 PM, Johan Herland <johan@herland.net> wrote:
Show 18 quoted lines
> On Mon, Sep 24, 2012 at 2:22 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
>> On Mon, Sep 24, 2012 at 6:59 PM, Johan Herland <johan@herland.net> wrote:
>>> The following works in the git.git repo:
>>>
>>> $ cd t
>>> $ git log -- /Documentation
>>> [...]
>>>
>>
>> What version? Mine (recent master) does not work
>>
>> ~/w/git/t $ ../git log -- /Documentation
>> fatal: '/Documentation' is outside repository
>
> We initially found it on 1.7.9.5, and conrfirmed it on various 1.7.10
> versions. A bisect reveals that this behavior changed in
> v1.7.11.5-35-gf4c21e8 (Michael Haggerty: real_path(): properly handle
> nonexistent top-level paths).
OK checking. I still don't know why it does not happen to me. Any special in gitdir/worktree setting? That commit is in master.
> Does this mean that "git log -- /Documentation" never should have
> worked in the first place (and was "fixed" by this commit), or that it
> should work (but was broken by this commit)?
I think that should mean Documentation at root. "git log -- `chdir ../Documentation;pwd`" works and that clearly conflicts with interpreting "/Documentation" as the directory at worktree's root.
> In any case, what is the _preferred_ way to path-limit "git log" to
> Documentation/RelNotes, when my cwd is t/?
If you want worktree root no matter where you stand, use "git log -- :/Documentation/RelNotes". The idea is ":" starts some "magic" in path handling, but for now there is only ":/". Or if you don't like magic, `git rev-parse --git-dir` should give you worktree's root to start with.
--
Duy