Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)

3 messages, 3 authors, 2016-06-15 · open the first message on its own page

Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:35

Ramkumar Ramachandra [off-list ref] writes:
SZEDER Gábor wrote:
quoted
the one at the top because
of the reasons given in $gmane/226272
Sorry about the delay: I went to sleep for a couple of days :P
quoted
the one at the bottom because
of the misleading commit message (__git_complete_file() always
completed refs first as part of the ref:file notation, so it worked
just fine except for the ref1...ref2 notation; the real reason for
calling __git_complete_revlist_file() for difftool is to make clear
that difftool takes ref1...ref2:file, too).
How am I (or anyone else) supposed to know the "intended" meaning
__git_complete_file()?
"git log -Gcomplete_file -p contrib/completion" found this one:

commit 1d66ec587e7d903afdf12a81718772a9eadc15a1
Author: SZEDER Gábor [off-list ref]
Date:   Thu Mar 10 19:12:29 2011 +0100

    bash: complete 'git diff ...branc<TAB>'
    
    While doing a final sanity check before merging a topic Bsomething, it
    is a good idea to review what damage Bsomething branch would make, by
    running:
    
        $ git diff ...Bsomething
    
    Unfortunately, our completion script for 'git diff' doesn't offer
    anything after '...'.  This is because 'git diff's completion function
    invokes __git_complete_file() for non-option arguments to complete the
    '<tree>:<path>' extended SHA-1 notation, but this helper function
    doesn't support refs after '...' or '..'.  Completion of refs after
    '...' or '..' is supported by the __git_complete_revlist() helper
    function, but that doesn't support '<tree>:<path>'.
    
    To support both '...<ref>' and '<tree>:<path>' notations for 'git
    diff', this patch, instead of adding yet another helper function,
    joins __git_complete_file() and __git_complete_revlist() into the new
    common function __git_complete_revlist_file().  The old helper
    functions __git_complete_file() and __git_complete_revlist() are
    changed to be a direct wrapper around the new
    __git_complete_revlist_file(), because they might be used in
    user-supplied completion scripts and we don't want to break them.
    
    This change will cause some wrong suggestions for other commands which
    use __git_complete_file() ('git diff' and friends) or
    __git_complete_revlist() ('git log' and friends), e.g. 'git diff
    ...master:Doc<TAB>' and 'git log master:Doc<TAB>' will complete the
    path to 'Documentation/', although neither commands make any sense.
    However, both of these were actively wrong to begin with as soon as
    the user entered the ':', so there is no real harm done.
    
    Suggested-by: Junio C Hamano [off-list ref]
    Signed-off-by: SZEDER Gábor [off-list ref]
    Signed-off-by: Junio C Hamano [off-list ref]

Now I do not recall suggesting it, and you (and I today after 2
years) may disagree with the rationale, but at least we can read
what was the "intended" meaning, I think.

Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)

From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:57:35

Junio C Hamano wrote:
"git log -Gcomplete_file -p contrib/completion" found this one:

Now I do not recall suggesting it, and you (and I today after 2
years) may disagree with the rationale, but at least we can read
what was the "intended" meaning, I think.
Having spent so much time documenting pickaxe, I should atleast learn
to use it more often :\

Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)

From: SZEDER Gábor <hidden>
Date: 2016-06-15 22:57:35

On Fri, Jun 07, 2013 at 11:41:07AM -0700, Junio C Hamano wrote:
"git log -Gcomplete_file -p contrib/completion" found this one:

commit 1d66ec587e7d903afdf12a81718772a9eadc15a1
Author: SZEDER Gábor [off-list ref]
Date:   Thu Mar 10 19:12:29 2011 +0100

    bash: complete 'git diff ...branc<TAB>'
(snip)
    Suggested-by: Junio C Hamano [off-list ref]
    Signed-off-by: SZEDER Gábor [off-list ref]
    Signed-off-by: Junio C Hamano [off-list ref]

Now I do not recall suggesting it, and you (and I today after 2
years) may disagree with the rationale, but at least we can read
what was the "intended" meaning, I think.
See

  http://thread.gmane.org/gmane.comp.version-control.git/167728/focus=168838

I still agree with the rationale, considering that the new
__git_complete_revlist_file() function for completing ref1...ref2:path
is a nearly straight copy-paste from the then __git_complete_revlist()
and __git_complete_file() including that 12 line long sed script.


Gábor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help