CollabNet merge client

The CollabNet team has made a fantastic work with the new merge client in Subclipse 1.6.x. I was used to the previous merge dialog and I was surprised how merging with SVN can be easy with a good wizard.

Let’s take a look at these screenshots :

Select merge operation

Merge wizard 1

Select branch to reintegrate

Merge wizard 2

Pre-merge checks

No screenshot here but if there is something wrong in the current working copy, the wizard warns you and provides quick fixes.

Merge options

Merge wizard 3

Results

Merge wizard 4

Merge graph

The branch and merge history can be shown in the history graph. We can see the previous merge on this test project.

Merge graph

Great work guys :-)


  • http://andrei.gmxhome.de/ Andrei Loskutov

    Unfortunately, despite all the nice GUI Subversion have, it simply useless for the merge task itself. SVN is unable to propagate any change to the renamed/moved files, so you cannot really use it in the environment where refactoring and merging happens daily.

    I will *never* recomend SVN for any project where refactoring AND merge can happen at same time.

    So SVN is just ok for small open source projects with one single branch or where no refactoring ever happens, as soon as one have two branches and more then 1 developer, it is a nightmare.

    See
    http://www.nabble.com/question-relating-SVN-file-directory-merges-and-tree-conflicts-tt24587712.html

  • http://andrei.gmxhome.de Andrei Loskutov

    Unfortunately, despite all the nice GUI Subversion have, it simply useless for the merge task itself. SVN is unable to propagate any change to the renamed/moved files, so you cannot really use it in the environment where refactoring and merging happens daily.

    I will *never* recomend SVN for any project where refactoring AND merge can happen at same time.

    So SVN is just ok for small open source projects with one single branch or where no refactoring ever happens, as soon as one have two branches and more then 1 developer, it is a nightmare.

    See
    http://www.nabble.com/question-relating-SVN-file-directory-merges-and-tree-conflicts-tt24587712.html

  • http://andrei.gmxhome.de/ Andrei Loskutov

    Nice excerpt from the link above:

    “Don’t do tree reorgs on isolated branches.”

    Seriously. Subversion is NOT ClearCase.
    You can’t just move things around everywhere and expect
    them to fall back into place without major effort on your part.
    Change your way of working now before it is too late.
    If you need to refactor, the whole team needs to know about it.
    Ideally, you’d merge all branches into trunk first, then refactor,
    then branch again. But of course that’s not always possible.

  • http://andrei.gmxhome.de Andrei Loskutov

    Nice excerpt from the link above:

    “Don’t do tree reorgs on isolated branches.”

    Seriously. Subversion is NOT ClearCase.
    You can’t just move things around everywhere and expect
    them to fall back into place without major effort on your part.
    Change your way of working now before it is too late.
    If you need to refactor, the whole team needs to know about it.
    Ideally, you’d merge all branches into trunk first, then refactor,
    then branch again. But of course that’s not always possible.

  • http://markphip.blogspot.com/ Mark Phippard

    Nicolas,

    Thanks for the blog post!

    If you did not see it, there is more details on the merge client here:

    http://desktop-eclipse.open.collab.net/servlets/ProjectProcess?pageID=MEuUjb

    For example, you can be prompted to resolve conflicts (including property conflicts) during the merge process and invoke the conflict editor or text editor of choice. There is also a merge results view that allows you to work through the results of the merge. This is great if resolving conflicts is going to take more than one edit session. It also makes it easy to review everything that was merged.

    Andrei, with the latest Subversion and CollabNet Desktop, refactorings are handled better. SVN does not automatically merge the changes, but it does flag them as tree conflicts so that you know about them. The Show Tree Conflicts option then shows you all of these conflicts and also provides a wizard to resolve the conflict. This will allow you to do an individual merge of the right revisions from the old file to the new file and then mark the conflict resolved.

    Thanks again.

    Mark

  • http://markphip.blogspot.com Mark Phippard

    Nicolas,

    Thanks for the blog post!

    If you did not see it, there is more details on the merge client here:

    http://desktop-eclipse.open.collab.net/servlets/ProjectProcess?pageID=MEuUjb

    For example, you can be prompted to resolve conflicts (including property conflicts) during the merge process and invoke the conflict editor or text editor of choice. There is also a merge results view that allows you to work through the results of the merge. This is great if resolving conflicts is going to take more than one edit session. It also makes it easy to review everything that was merged.

    Andrei, with the latest Subversion and CollabNet Desktop, refactorings are handled better. SVN does not automatically merge the changes, but it does flag them as tree conflicts so that you know about them. The Show Tree Conflicts option then shows you all of these conflicts and also provides a wizard to resolve the conflict. This will allow you to do an individual merge of the right revisions from the old file to the new file and then mark the conflict resolved.

    Thanks again.

    Mark