Subject: bug#13004: 24.2; vc-diff from vc-log doesn't show diff before renames (for Mercurial backend).

From: Glenn Morris <[email-masked]>
Date: Tue, 27 Nov 2012 15:09:47 -0500

Oleksandr Gavenko wrote:

>   md /tmp/test
>   hg init
>   echo xxx >>README
>   hg add
>   hg ci -m init
>   echo yyy >>README
>   hg ci -m before
>   hg mv README INSTALL
>   hg ci -m rename
>   echo zzz >>INSTALL
>   hg ci -m after

Perfect, thanks. (Assuming md == mkdir && cd)

> Open INSTALL file in Emacs. "C-x v l" ("vc-print-log"). You get (I drop some
> output):

I had to add -f to vc-hg-log-switches. I'm guessing you have it in .hgrc
maybe.

> In changeset 2 "d" (log-view-diff) fine:
>
>   diff --git a/README b/INSTALL
>   copy from README
>   copy to INSTALL

I had to add --git to vc-hg-diff-switches.

> In changeset 1 "d" (log-view-diff) fail: empty *vc-diff* buffer and message:
>
>   Finding changes in /tmp/test/INSTALL...
>   No changes between 0 and 1
[...]
>   $ hg diff -r 1 -r 2 INSTALL
>   diff --git a/README b/INSTALL
>   copy from README
>   copy to INSTALL

Obviously to compare with what you are asking Emacs to do, you need to run:

hg diff -r 0 -r 1 INSTALL

This prints nothing for me.

So I don't see any Emacs issue here.