We’re evaluating UVCS for our studio and so far we’ve been experiencing a bit of friction with the code review & branch merging process. Some of these things are minor annoyances, and others are things team members (especially less-technical ones) are likely to get wrong more often than not. We’re wondering if there are some best practices out there, or work in progress on improving the tooling.
Some of what we’ve run into so far:
- In the desktop application you can’t make a review for an entire branch from the Branch Explorer, instead you have to switch to the Branches tab. In general the context menu on a branch label in the Branch Explorer is very misleading since it rarely acts upon the branch itself (our team has ended up creating many single-changeset reviews this way).
- Code reviews don’t describe where they’ll be merging to. In other words, they’re truly a branch code review, not the equivalent of a merge review in Perforce, or a pull request in git.
- In general, the “I’m ready to merge this, can people please check out if it’s ok” workflow seems under-supported.
- There’s no rebase, so the recommended flow is merge from parent to child. But once you do that, the default view in a code review shows all the file changes from the parent branch in the review, confusing reviewers about what’s changed in the branch and what they actually need to review, adding friction.
- There’s nothing showing you whether your branch is ready to merge, or out of date, or will have merge conflicts, forcing you to leave the review in order to get these answers, adding friciton.
- You can’t assign groups of individuals to a review, so automatically assigning a Developers team, or a UI team to a review doesn’t actually help you get the content reviewed.
- If you haven’t been individually invited to a review you aren’t allowed to mark the review as reviewed. This turns the code review approval process from a passive team culture process into an active “I need to go find an individual person who will review my code and invite them” step - it adds friction.
- Mergebots actually make the workflow more manual than not, adding friction. Once you ARE ready to merge things, if you’re using a merge bot the interface is unintuitive and error prone. Where all other code review tools I’ve used have a 1-step process which is the equivalent of a “Complete review” or “merge pull request”, or even a “merge once review has enough approvals” etc. Plastic has a multi-step process:
- Leave the code review
- Go to the branches view
- Select the branch the review was for
- Click the show properties button
- Click Apply Attributes
- Select the appropriate attribute name from the list (“status” according to the tutorials)
- Select the appropriate value from the list (“resolved” according to the tutorials)
- Then the “automation” should handle it for you
What are other peoples experiences with this tool in a multi-discipline team? Are we just using it wrong? Is there a better way to get work reviewed and into a main/develop/trunk branch?


