GNU bug report logs - #13405
24.3; log-view-diff-changeset reports wrong results

Previous Next

Package: emacs;

Reported by: Andy Moreton <andrewjmoreton <at> gmail.com>

Date: Thu, 10 Jan 2013 16:04:01 UTC

Severity: normal

Merged with 15883

Found in versions 24.3, 24.3.50

To reply to this bug, email your comments to 13405 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#13405; Package emacs. (Thu, 10 Jan 2013 16:04:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andy Moreton <andrewjmoreton <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 10 Jan 2013 16:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; log-view-diff-changeset reports wrong results
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





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13405; Package emacs. (Fri, 11 Jan 2013 23:14:02 GMT) Full text and rfc822 format available.

Message #8 received at 13405 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andy Moreton <andrewjmoreton <at> gmail.com>
Cc: 13405 <at> debbugs.gnu.org
Subject: Re: bug#13405: 24.3; log-view-diff-changeset reports wrong results
Date: Fri, 11 Jan 2013 18:13:26 -0500
> 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 ?

VC assumes you can get the changeset by running
"hg diff -r <something> -r 46769".  Is there a <something> that would
give the right answer?  Ideally this <something> should be computable
from "46769".


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13405; Package emacs. (Sat, 12 Jan 2013 14:23:02 GMT) Full text and rfc822 format available.

Message #11 received at 13405 <at> debbugs.gnu.org (full text, mbox):

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 13405 <at> debbugs.gnu.org
Subject: Re: bug#13405: 24.3; log-view-diff-changeset reports wrong results
Date: Sat, 12 Jan 2013 14:22:27 +0000
On 11/01/2013 23:13, Stefan Monnier wrote:
>> 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 ?
>
> VC assumes you can get the changeset by running
> "hg diff -r <something> -r 46769".  Is there a <something> that would
> give the right answer?  Ideally this <something> should be computable
> from "46769".

This can be done using revsets:
# hg diff -r46769^1 -r 46769 | wc -l
295

However that relies on having a new enough version of mercurial that 
supports the revsets syntax. The "hg diff -c" or "hg log -p" commands 
work with older mercurial versions that do not support revset syntax.

    AndyM





Merged 13405 15883. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Wed, 13 Nov 2013 19:22:02 GMT) Full text and rfc822 format available.

This bug report was last modified 11 years and 213 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.