Current Articles | RSS Feed RSS Feed

Try the new Subversion code review and merge requests

Posted by Andy Singleton on Thu, Dec 13, 2012

Your Source/SVN tool now supports a modern code review and code contribution process. You can see it under the new "Review code" subtab.  It is similar to the workflows enjoyed by git users to include a large number of contributors or to review code for continuous integration and continuous delivery.  You can put your changes in a branch, review them, and merge them through a Web-based UI.

This first release has a simple workflow that requires users to manage their own branches.  Please leave a comment with your feedback.  After we are sure that this is working smoothly, we will enhance it with much-requested features like extra permissions on trunk (to push contributions into reviewed branches), one-button branch creation, and inline code commenting.

How it Works:

Make a temporary branch.  Write your changes and commit them.

Make a merge request.  You only need to select the source branch. We already know how to merge it to the destination it was branched from.

create merge requests resized 600

Contributions show up on the review list

mr list resized 600

Select a merge request to review.  You can open the "Get Changes" link to see instructions for merging and testing the changes.  In most cases, you want to test the result of merging the change with trunk (or the source that you branched from).  So, the instructions will ask you to switch to trunk, and merge the changes.

merge instructions resized 600

Use the controls on the merge request to write comments (you can @mention the contributor), vote, and view changed files and diffs.

view diff resized 600

Subversion merge requests have a lot of the same great features that are in our git merge requests.  For example, they get linked to tickets when you include a #ticket link in your commits.  So, when you can see the status of the relevant code changes.  And, when you look at a merge request, you can see the tickets you are working on.

Patch or branch?

A lot of Subversion code review systems use patches.  You make a patch (a diff file with the changes) and you upload it to a code review system like Reviewboard, or you email it to a list of reviewers (Subversion developers do this on the Apache Subversion developers list).  The advantage of a patch is that it is easy for a reviewer to apply it to whatever version of code he is working on, and it doesn't need to be integrated with your repository server.  However, it is annoying to make and upload a patch, and you can't fix it.  If you see a problem in a branch, you just switch to the branch and fix it.  We discussed this with our own team, and with some of the Apache Subversion core developers, and we decided that we prefer reviewing and sharing real branches.

We hope that you see some benefit in the branch-based workflow.  Get it for free with Assembla Renzoku.

Tags: , , ,


This would be a great addition, and is a big step in making it easier to manage contributions. At the moment though, when I try it, my branch content doesn't get recognised, I get the three dots going around and around.  
We use a 'tasks' folder in our repository, so the branches are not in the 'branches' folder. Could that be a source of the problem?

posted @ Wednesday, December 19, 2012 6:09 PM by fiammybe

I very happy&Interest thank you very much.

posted @ Saturday, December 22, 2012 3:04 AM by isabella

I was just preparing to do our own makeshift version of this same review workflow which likely involve some leg work to integrate with Assembla, then thanks to Assembla, they gave me an early Christmas present and did everything for me. 
Thanks guys, when I begin to become profitable and am able to expand, Assembla will definitely be my choice for paid team workflow and source control hosting.

posted @ Thursday, December 27, 2012 11:00 PM by Matt Holley

It would be a nice feature if you could also change the destination path. 
Now this feature doesn't work for us since the origin isn't recognised properly.  
svn diff on command line works fine for us. 
We have a repos with a few subdirs within each a trunk, branches and tags directory. The trunk is recognised at it's highest level instead of /subdir/trunk

posted @ Wednesday, January 09, 2013 5:38 AM by René de Kat

@Rene, we recently discovered this issue and are working on a fix.

posted @ Wednesday, January 09, 2013 7:45 AM by Adam

Comments have been closed for this article.

Follow Assembla

twitter facebook youtube linkedin googleplus

Get Started

blog CTA button

Subscribe by Email

Your email: