[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: TSVN - Log Dialog - Compare with Previous Revision

From: Daniel Becroft <djcbecroft_at_gmail.com>
Date: Tue, 1 Dec 2009 07:37:09 +1000

On Thu, Nov 26, 2009 at 8:03 AM, Daniel Becroft <djcbecroft_at_gmail.com> wrote:
> On Thu, Nov 26, 2009 at 7:35 AM, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
>> On 25.11.2009 02:03, Daniel Becroft wrote:
>>> Hi,
>>>
>>> I've come across a strange situation with the Log Messages dialog, and
>>> the "Compare with Previous Revision" option.
>>>
>>> The Log Messages dialog is launched from the Repository Browser window
>>> (from a parent directory, /alpha). I have the following change
>>> (r7612), which is listed in the file list as:
>>>
>>> Action: Added
>>> Path: .../alpha/beta/source-modified/foo.c
>>> Copy from path: .../alpha/beta/source-base/foo.c
>>> Revision: 7499
>>>
>>> (/source-modified and /source-base are sibling folders, and the file
>>> has been copied with additional modifications).
>>>
>>> If I right-click on the revision in the top pane, and select "Compare
>>> with Previous Revision", I expected to see (in the Changed Files
>>> window) the difference between /alpha_at_7611 and /alpha_at_7612 (which
>>> should only be the copy of foo.c). However, what I actually get is a
>>> comparision between /alpha_at_7499 and /alpha_at_7612.
>>
>> But that's correct: the previous revision of that file is the one from
>> where it was copied from.
>
> Shouldn't it be the previous revision on the path for which I am
> viewing the log for (rather than the previous revision for the copied
> file)? I would have expected the "Changed Files" window to display the
> equivalent of:
>
>    svn diff --summarize -c 7612 svn://..../alpha
>
> I still don't understand why it is showing the equivalent of:
>
>    svn diff --summarize -r 7499:7612 svn://.../alpha
>
> instead.
>
> If I use the "Show Changes as Unified Diff" option on the revision, it
> gives me the same output. It shows the differences of all files
> changed (including those under /alpha/gamma, /alpha/delta, etc), even
> those these were not changed in the revision I selected.
>
> This only seem to be happening for a revision with a single copied
> file. If I have multiple files, or multiple files with different "Copy
> From" revisions, then the "Compare with Previous Revision" correctly
> displays the difference between the revision selected, and the one
> immediately prior to it.
>
>> TSVN has to follow the copyfrom path,
>> otherwise (in case of a rename) it wouldn't find the file at /alpha_at_7611
>> because the file would have another name in r7611.
>
> If I right-click on the "foo.c" path in the bottom section of the Log
> Messages dialog, and select the "Show Changes" option, then I would
> expect that. This option correctly shows the difference between
> source-base/foo.c_at_7499 and source-modified/foo.c_at_7612.
>
>> Sure, if you only copied the file without any modifications, the diff
>> isn't really useful. But it often happens that you copy a file in your
>> working copy, modify it and then commit it. So you would actually get a
>> diff in this situation.

Does anyone have any further comments to this? If I'm misunderstanding
what the "Compare with Previous Revision" is supposed to do, then my
apologies. But, it does seem inconsistent.

When selected the "Show Log" from the Repository Browser for the path
svn://X/alpha:

a) For a revision (r10) with a file copy (from r5), it will show the
difference between r10 and r5 for the path /alpha (which will include
all the changes made to unrelated files under /alpha in r6-9)
b) For a revision (r11) with a file copy (from r5), and a modification
to a separate file, it will show the diffference between r11 and r10
(the previous revision on /alpha).
c) For a revision (r12) with multiple file copies (from the same
revision), it will show the difference between r12 and r11 (the
previous revision on /alpha).

I could list all the combinations that I have checked, but they will
all do the same as (b) or (c) - which is what I would have expected.
It only seems the first scenario (single file copy) that seems to be
acting differently.

Maybe it is my misunderstanding of what the "Compare with Previous
Revision" is supposed to do. My understanding of it, is to answer the
question "What files/directories under this path were affected by this
revision?" Is this where I am incorrect?

Regards,
Daniel B.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2425684

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-11-30 22:37:30 CET

This is an archived mail posted to the TortoiseSVN Users mailing list.