unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: David Koppelman <koppel@ece.lsu.edu>, 39044@debbugs.gnu.org
Subject: bug#39044: 27.0.50; On git log-view-diff does not work for moved files.
Date: Thu, 14 Dec 2023 03:23:35 +0200	[thread overview]
Message-ID: <82fa7939-8914-0dd4-ef6c-e3d100aa1dc6@gutov.dev> (raw)
In-Reply-To: <9961b9c6-e39b-d6f9-5d5b-a0e3de5b12c7@yandex.ru>

On 13/05/2020 04:36, Dmitry Gutov wrote:
> On 08.01.2020 22:48, David Koppelman wrote:
>>
>> With (setq vc-git-print-log-follow t) visit a file in a git repo that
>> was moved from some other directory and which had changes when in that
>> other directory. Start log view, C-x v =, move the cursor to a commit
>> made in the file's former location, and press d (log-view-diff). Rather
>> than showing a diff, a message reporting no changes is shown.
> 
> I usually give up and press 'D' in those cases (diff for the whole tree).
> 
>> This flaw was noted in bug 8756, covering vc-diff/log-view, but was
>> left to a follow on bug.
>> (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=8756).
>>
>> Interestingly, vc-annotate has no trouble with renames. See
>> commit d1e4c4037e88f3256db19813805d03f8ad0291fa.
> 
> vc-annotate is fine because 'git blame' includes the previous file name 
> in the output. Not so for 'git log' by default.
> 
> Looking at this issue for some time, I haven't found an easier way to do 
> this rather than:
> 
> 1. When vc-git-print-log-follow=t, also add the --name-status argument 
> to the command invocation.
> 
> 2. Hide this new text from the user using font lock by adding some rules 
> to vc-git-log-view-mode.
> 
> 3. _Probably_ teach log-view-current-file how to determine the current 
> file name. _Maybe_ via log-view-file-re. Some come would also need to 
> set log-view-per-file-logs to t for per-file Git logs. It could also be 
> made into a backend method instead.
> 
> See also bug#13004 for the same problem when using Hg. It could use the 
> same approach, but the solution is more questionable since '--stat' 
> seems to noticeably slow it down.

I have now posted a somewhat related solution to 
https://debbugs.gnu.org/55871#41.

Except it requires vc-git-print-log-follow to be disabled, and has 
virtually no runtime overhead. And it works when a fileset contains 
several files, not just for singles (a rare case, though).

Feedback welcome.

And maybe these bug reports should be merged, actually, since the 
complaint is more or less the same.





  reply	other threads:[~2023-12-14  1:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-08 20:48 bug#39044: 27.0.50; On git log-view-diff does not work for moved files David Koppelman
2020-05-13  1:36 ` Dmitry Gutov
2023-12-14  1:23   ` Dmitry Gutov [this message]
2023-12-15 20:48     ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=82fa7939-8914-0dd4-ef6c-e3d100aa1dc6@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=39044@debbugs.gnu.org \
    --cc=koppel@ece.lsu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).