TortoiseSVN Revision Graph: Merge -> line connecte

2020-05-22 00:32发布

Does TortoiseSVN Revision Graph draw a line from Branch back to the Trunk when I finish a "Merge"?

6条回答
再贱就再见
2楼-- · 2020-05-22 00:34

After trying it out on my own, the answer is no.

These are my setup.

TortoiseSVN 1.6.2, Build 16344 - 64 Bit Subversion 1.6.2

Though this doesn't make sense at all...

If TSVN shows a line for branch off, how come there's no line for merge in? What's the rationale behind that?

查看更多
够拽才男人
3楼-- · 2020-05-22 00:43

Taking a branch is a copy operation (which is very cheap in svn) and it looks obvious in the logs that is what happened, hence the line. It's obvious (to svn/tortioiseSVN) because you can't make a branch without taking every single artefact from the trunk at the revision you chose. That's why a line is always shown - making a branch is guaranteed to take all your files from the trunk into your branch. Merging back in is different, you can selectively merge in whatever you want.

Merging back in is not a copy but a commit of your diffs from the HEAD (current latest trunk) to your own working copy (your branch). To SVN, it looks like someone took the latest trunk and changed a load of files at once and committed them in.

IMO, a line going back to trunk would be misleading because you could merge and choose the trunks version over your own for every single file - the line would imply you had brought all your changes in but there is actually no guarantee you brought any in.

查看更多
\"骚年 ilove
4楼-- · 2020-05-22 00:54

This is still not implemented with TortoiseSVN (Jan 2014), but it is possible with the eclipse Subversive plugin http://www.eclipse.org/subversive/documentation/teamSupport/revision_graph.php (as well as the Subclipse plugin that has previously been mentioned).

Unfortunately you have to click on each node to show it rather than being able to display it on all nodes by default.

If you selected to show merge information and there were merges then merge information is presented on graph. Each revision node may have incoming and(or) outgoing merges which are shown on revision node by corresponding blue arrows directed to left or right. For each type of merges there's number near the arrow which means number of merges, for incoming merges there are also shown revision numbers (in brackets) affected by merges. By default, merge connections between nodes are not shown, as there can be lots of merge connections which can significantly complicate graph presentation and understanding. If you want to see merge connections for revision node you can either click on blue merge arrow on revision node or call corresponding action from node's context menu such as 'Show Outgoing Merges' or 'Show Incoming Merges'.

查看更多
ら.Afraid
5楼-- · 2020-05-22 00:56

From my experience the answer is no, but why don't you try it and tell us. I am sure you aren't going to cancel your merge because tortoise svn may or may not represent it graphicly.

Update based on response TSVN is just a tool to represent what is in SVN, so they have complete freedom to change the way they represent it without having any real world impact :) I am not saying your idea is a bad one, but really the information about the merge is still there if you added to the comments.

查看更多
forever°为你锁心
6楼-- · 2020-05-22 00:57

Speaking from "real world" scenario, it does help a lot if there is a line for merge just like it helps a line for branch. If logs are to be looked at, why even add a line for barnch..all the info is there in log.

But when you have to maintain multiple branches for different customers and merge changes into trunk...it becomes almost unmanageable without a graphical representation (I mean we have tools to make life simple...why use them if you have to sit for hours reading logs).

So, even if SVN/Tortoise can't decide when to make a line, but if user can force a line, I think it will help a lot.

It's true that some of the differences may not have been merged or the merge process itself wasn't executed properly, but that should be left for user to log :-)

查看更多
我命由我不由天
7楼-- · 2020-05-22 00:59

You may wish to look at Subclipse Revision Graph.

It supports showing merge information as long as the merges were performed by 1.5.x and greater clients and server. (Starting with 1.5 line of SVN, Merge info tracking was added through meta data attached to folders)

The Subclipse tool attempts to show this information, but I've found it highly hit or miss in even working. It's not highly polished but shows extreme promise. Especially if this can be brought back out to TortoiseSVN at some point.

You may also wish to look at Subversion's notes on it's merge implementation.

查看更多
登录 后发表回答