Subject: Re: bug#8756: 23.3; vc-git.el doesn't use --follow argument in vc-git-print-log

From: Dan Nicolaescu <[email-masked]>
Date: Mon, 28 Nov 2011 16:08:32 -0500

Steinar Bang <[email-masked]> writes:

>>>>>> Dan Nicolaescu <[email-masked]>:
>
>> I tried doing that at some point, but the result is not completely
>> functional, these commands do not work:
>>  "d" (log-view-diff)
>>  "f" (log-view-find-revision)  
>>  "a" (log-view-annotate-revision)
>
> Yes, I discovered the same thing.
>
>> which means that the corresponding vc-git.el functions need updating.
>> If someone figures out what git commands/sequence of commands are
>> needed to implement these, then it should not be too hard to implement
>> the needed changes.
>
> I decided to take a look at it again today.  The first problem I ran
> into, was that the emacs 23.1 version of `vc-git-print-log' used
> "git rev-list" instead of "git log".  And only "git log" supports
> "--follow" to track renames (at least that's what I concluded after
> googling for this today.  *Please* correct me, if I'm wrong!).

vc-git-print-log currently uses "git log", so your changes should not be
needed.

> This had slightly more success than the first attempt:
>  - `C-x v l' reports the full history (as in the previous attempt)
>  - Now `d', `f', and `a' works for commits newer than the rename
>  - After the rename
>   - `d' no longer fails with "No next version", but reports no diff,
>     where there should have been a diff
>     #begin_example
>      No changes between a92a3d062dac1b0ec5eece4ed6f9570e59f1a69b and 8d304db76993a0da0894b3d30794a2c5ec4927fe
>     #end_example

To solve this problem please figure out the git command (or set of
commands) that produces the expected diff.  Anything displayed in the
log buffer can be considered as available.  After that we need to figure
out how to make VC use that/those command(s).

>   - `f' and `a' fails because the file doesn't exist
>     #begin_example
>      fatal: no such path apps/share/emacs23/site-lisp/vc-git.el in 8d304db76993a0da0894b3d30794a2c5ec4927fe
>     #end_example

Same as above.