Subject: bug#13405: 24.3; log-view-diff-changeset reports wrong results

From: Andy Moreton <[email-masked]>
Date: Thu, 10 Jan 2013 16:02:56 +0000

Emacs trunk built from r111470 on Windows XP (with mingw gcc 4.7.2).

Using vc support in emacs with a mercurial (hg) repository:
1) Annotate a file under hg version control.
2) Type "l" (vc-annotate-show-log-revision-at-line) in the annotate buffer
    to show the *vc-change-log* buffer containing the log entry for
    revision 46769.
3) In the *vc-change-log* buffer, type D (log-view-diff-changeset) to view
    the changeset for that single revision.
    Emacs runs "hg diff --git -r 46768 -r 46769", but this does not show
    the expected contents of the changeset, as the previous revision was
    on a different named branch. Instead this shows the (large) diff between
    the two branches. The line counts illustrate this:

    # hg diff -r 46768 -r 46769 | wc -l   ## Diff between branches
    102276
    # hg diff -c 46769 | wc -l            ## Changeset diff
    295
    # hg log -p -r 46769 | wc -l          ## Changeset diff + hg metadata
    302

    The second and third commands give the expected output.
    Can log-view-diff-changeset be changed to deal with this case more
    gracefully ?

        AndyM