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
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
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
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
---------------------------------------------------------------------
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.
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.