TortoiseSVN Blame and merge tracking

143 views
Skip to first unread message

Snakefoot

unread,
Sep 3, 2008, 10:53:36 AM9/3/08
to us...@tortoisesvn.tigris.org
Hi ya

I have just performed my very first large merge from a feature branch
to the trunk. To make it interesting, a few changes from the trunk was
cherry picked to the feature branch. The final merge to trunk was
performed using reintegration, and all changes was merged perfectly.

I'm now checking whether TortoiseSVN blame is able to display the
merged revisions properly, and generally the blame-functionality works
wonderful.

But I have a few cases where something odd happens:

1) Have a merged checkin with original revision 39248 (2008-26-08),
which adds 10 new lines to a file. The blame believes that 9 of these
lines was added at revision 15768 (14-19-2005).
- When right-clicking the one line which correctly says revision
39248 and select "Show changes", then the title says 39248 but it
shows an older revision of the file. The two panes says rev. 39247 and
39248, but cannot display any changes.
- When right-clicking one of the other 9 lines and select "Show
Changes", then it correctly displays the changes, but they do not
include the ones that the blame believes are from that revision.
- When doing a standard svn blame, then the 10 lines are marked as
being from the merge-commit (39331)

2) The same merged checkin with original revision 39248 (2008-26-08)
also modifies 6 lines in another line. The blame doesn't recognize
these lines as coming from this revision, but says they arrived with
the merge commit rev 39331
- When showing the log for that file, and enables "Include merged
revisions" then it correctly displays 39248 to be a merged revision.
And when showing changes for that revision, then it correctly displays
that the 6 lines was modified.
- Other merge revisions to the same file are correctly shown as
merged in the blame for that file.
- When doing a standard svn blame, then the 6 lines are also marked
as being from the merge-commit (39331)

The 39248 revision was not the cherry picking checkin to the feature
branch.

Thank you in advance

-Rol

---------------------------------------------------------------------
To unsubscribe, e-mail: users-un...@tortoisesvn.tigris.org
For additional commands, e-mail: users...@tortoisesvn.tigris.org

Snakefoot

unread,
Sep 4, 2008, 9:38:18 AM9/4/08
to us...@tortoisesvn.tigris.org
Btw, I'm using TortoiseSVN 1.5.3 Build 13783

Stefan Küng

unread,
Sep 4, 2008, 2:01:01 PM9/4/08
to us...@tortoisesvn.tigris.org
Snakefoot wrote:
> Hi ya
>
> I have just performed my very first large merge from a feature branch
> to the trunk. To make it interesting, a few changes from the trunk was
> cherry picked to the feature branch. The final merge to trunk was
> performed using reintegration, and all changes was merged perfectly.
>
> I'm now checking whether TortoiseSVN blame is able to display the
> merged revisions properly, and generally the blame-functionality works
> wonderful.
>
> But I have a few cases where something odd happens:
>
> 1) Have a merged checkin with original revision 39248 (2008-26-08),
> which adds 10 new lines to a file. The blame believes that 9 of these
> lines was added at revision 15768 (14-19-2005).
> - When right-clicking the one line which correctly says revision
> 39248 and select "Show changes", then the title says 39248 but it
> shows an older revision of the file. The two panes says rev. 39247 and
> 39248, but cannot display any changes.
> - When right-clicking one of the other 9 lines and select "Show
> Changes", then it correctly displays the changes, but they do not
> include the ones that the blame believes are from that revision.
> - When doing a standard svn blame, then the 10 lines are marked as
> being from the merge-commit (39331)

Running diff/blame for selected revisions should work now (r13824)

>
> 2) The same merged checkin with original revision 39248 (2008-26-08)
> also modifies 6 lines in another line. The blame doesn't recognize
> these lines as coming from this revision, but says they arrived with
> the merge commit rev 39331
> - When showing the log for that file, and enables "Include merged
> revisions" then it correctly displays 39248 to be a merged revision.
> And when showing changes for that revision, then it correctly displays
> that the 6 lines was modified.
> - Other merge revisions to the same file are correctly shown as
> merged in the blame for that file.
> - When doing a standard svn blame, then the 6 lines are also marked
> as being from the merge-commit (39331)

I can't seem to reproduce this. But I *think* it should work as of
r13825. Not sure though...

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

signature.asc

Snakefoot

unread,
Sep 8, 2008, 8:30:10 AM9/8/08
to us...@tortoisesvn.tigris.org
On Sep 4, 8:01 pm, Stefan Küng <tortoise...@gmail.com> wrote:
>
> I can't seem to reproduce this. But I *think* it should work as of
> r13825. Not sure though...

I have tested again with TortoiseSVN 1.5.3 Build 13835, and I can
reproduce both cases:

1) Continues to display the first line as being from the feature
branch, while the following 9 lines are from year 2005 (Though all 10
lines are from the same commit to the feature branch)

The "Show Changes" behavior have changed though:
- When right-clicking the first line (rev. 39248) and select "Show
Changes", then it diffs 39330 and 39331 (diff of merge-commit)
- When right-clicking one of the the 9 lines (rev. 15768) and select
"Show Changes", then it diffs 39330 and 39331. (diff of merge-commit)

I would expect that all 10 lines should say they come from rev 39248,
and when choosing "Show Changes", then it should display the changes
of rev. 39248. But I wouldn't mind keeping the option of being able to
see the modifications of the entire merge-commit to that file.

2) Continues to display the merge-comment instead of the comment from
the feature branch for the 6 lines.

Best regards

-Rolf

Simon Large

unread,
Sep 8, 2008, 9:11:28 AM9/8/08
to us...@tortoisesvn.tigris.org
2008/9/8 Snakefoot <swe...@gmail.com>:

> On Sep 4, 8:01 pm, Stefan Küng <tortoise...@gmail.com> wrote:
>>
>> I can't seem to reproduce this. But I *think* it should work as of
>> r13825. Not sure though...
>
> I have tested again with TortoiseSVN 1.5.3 Build 13835, and I can
> reproduce both cases:
>
> 1) Continues to display the first line as being from the feature
> branch, while the following 9 lines are from year 2005 (Though all 10
> lines are from the same commit to the feature branch)
>
> The "Show Changes" behavior have changed though:
> - When right-clicking the first line (rev. 39248) and select "Show
> Changes", then it diffs 39330 and 39331 (diff of merge-commit)
> - When right-clicking one of the the 9 lines (rev. 15768) and select
> "Show Changes", then it diffs 39330 and 39331. (diff of merge-commit)
>
> I would expect that all 10 lines should say they come from rev 39248,
> and when choosing "Show Changes", then it should display the changes
> of rev. 39248. But I wouldn't mind keeping the option of being able to
> see the modifications of the entire merge-commit to that file.
>
> 2) Continues to display the merge-comment instead of the comment from
> the feature branch for the 6 lines.

You need to try the nightly build from trunk on /latest rather than
the 1.5.x branch. The version number will be 1.5.99.xxx

Simon

--
: ___
: oo // \\ "De Chelonian Mobile"
: (_,\/ \_/ \ TortoiseSVN
: \ \_/_\_/> The coolest Interface to (Sub)Version Control
: /_/ \_\ http://tortoisesvn.net

---------------------------------------------------------------------

Stefan Küng

unread,
Sep 8, 2008, 10:38:31 AM9/8/08
to us...@tortoisesvn.tigris.org
Snakefoot wrote:
> On Sep 4, 8:01 pm, Stefan Küng <tortoise...@gmail.com> wrote:
>> I can't seem to reproduce this. But I *think* it should work as of
>> r13825. Not sure though...
>
> I have tested again with TortoiseSVN 1.5.3 Build 13835, and I can
> reproduce both cases:
>
> 1) Continues to display the first line as being from the feature
> branch, while the following 9 lines are from year 2005 (Though all 10
> lines are from the same commit to the feature branch)

Try the command line client (svn blame -g).
The lines reported in TortoiseBlame are received via the svn API, and if
those are wrong I suspect that the bug is in the library.

> The "Show Changes" behavior have changed though:
> - When right-clicking the first line (rev. 39248) and select "Show
> Changes", then it diffs 39330 and 39331 (diff of merge-commit)
> - When right-clicking one of the the 9 lines (rev. 15768) and select
> "Show Changes", then it diffs 39330 and 39331. (diff of merge-commit)

That's correct. It diffs the revisions where the change was committed.

> I would expect that all 10 lines should say they come from rev 39248,
> and when choosing "Show Changes", then it should display the changes
> of rev. 39248. But I wouldn't mind keeping the option of being able to
> see the modifications of the entire merge-commit to that file.

rev 39248 won't have any changes on that particular path/url: that
revision had the changes done on the *other* branch (which got merged
later). So TortoiseBlame must execute the diff for the revision where
the merge was committed, *not* the original revision.

signature.asc

Snakefoot

unread,
Sep 10, 2008, 11:24:28 AM9/10/08
to us...@tortoisesvn.tigris.org
On Sep 8, 4:38 pm, Stefan Küng <tortoise...@gmail.com> wrote:
>
> Try the command line client (svn blame -g).
> The lines reported in TortoiseBlame are received via the svn API, and if
> those are wrong I suspect that the bug is in the library.
>

Just tried and the command-line client also displays the same
behavior. Time to search the svn-bug-base.

> > I would expect that all 10 lines should say they come from rev 39248,
> > and when choosing "Show Changes", then it should display the changes
> > of rev. 39248. But I wouldn't mind keeping the option of being able to
> > see the modifications of the entire merge-commit to that file.
>
> rev 39248 won't have any changes on that particular path/url: that
> revision had the changes done on the *other* branch (which got merged
> later). So TortoiseBlame must execute the diff for the revision where
> the merge was committed, *not* the original revision.

Don't mind the default to be the complete merge diff. But it would be
nice if there was an option to see the original diff, instead of the
complete merge diff. Instead of having to use the repo-browser to find
the same modification in the feature branch and then perform the diff
there of that revision. It would be enough to open the "Show Log"-
window with that specific revision, so one manually had to select the
file to see the modifications.

Reply all
Reply to author
Forward
0 new messages