On Tue, Dec 4, 2012 at 2:33 PM, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
> On 03.12.2012 04:57, Daniel Becroft wrote:
>> One of our users has raised the issue that tracking which branch(es)
>> include a given revision is a little difficult.
I'd say very difficult. This is my main annoyance with SVN currently.
It is too hard to see whether a branch has been merged, and where it
got merged to, so you can check that it was merged properly months
after the fact. Especially if one's colleagues' commit comments are
something like "merge after peer review".
>> It would be good if, from the Log Messages dialog, a user can
>> right-click and select "Revision graph", or "Merge graph". This would
>> then show the Revision Graph window for that revision, starting from
>> where it was made, as well as the branches into which it was merged (and
>> from there, the tags).
I think this would be a natural fit for the revision graph, which you
can see at least from the main TortoiseSVN context menu. It doesn't
seem to be in the "show log" dialog's context menu, but I don't really
think it needs to be. I think the revision graph just needs a "show
merge arrows" button. For greatest utility (and efficiency in most use
cases where you only care about one branch), it should have 4 states:
1. Do not show merge arrows (default)
2. Show merges to current branch. Branches and revisions which have
been merged to the branch containing the current working copy would
have arrows drawn to the first revision where the merge metadata
includes the revision.
3. Show merges from current branch. This one will take a longer
because all branches in the repository must be scanned for the merge
metadata, but this one is the useful one for the OP's request.
4. Show all merges. This would take the most time, scanning all
branches and drawing merge arrows for all merge metadata found.
Probably, only the HEAD revision need be examined on each branch. As
far as I know merge data is something that is only really interesting
on the HEAD.
I envision a vertical line drawn alongside all consecutive revisions
which were merged as a group, and a single arrow drawn from this
grouping line to the revision where the consecutive revisions were
If we want to get fancy later, different line styles could be used
based on whether all changes in the branch have been merged, or just a
few, which would roughly correspond to the different merge types (yes
I know not exactly but the intent is just to show visually whether an
entire branch was merged somehow). For example, an arrow with a dotted
line could show merges of a range of revisions, and an arrow with a
solid line could show "reintegrate" merges.
> Subversion only stores the information "from where" something got
> merged, not "where to".
All you need is "from where", really. While it might take a long time
(computing time, probably not human time) to scan all branches to find
those of interest, all the necessary information is there. The option
to draw the arrows should be turned off by default so any performance
hit doesn't surprise users. There might be some way to allow the user
to configure a list of repository locations where scanning is
performed or prohibited, to improve performance. For example, most of
the time only the "trunk" and "branches" directories would need to be
If performance is a big concern, it might be a good idea to
incrementally update the merge arrows as the information is found
rather than waiting for all of it before drawing.
There WAS an issue in the old bug tracker for showing merge arrows,
but it seems to have been lost during the transition to the new. See
this for some prior discussion on the old FS#371 issue, with a
suggested alternative to merge arrows:
I and another user have posted about the issue being lost but neither
of us received any useful response:
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2012-12-05 18:38:16 CET