Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Code Review now available for macOS

Friday, December 20, 2019 Pablo Santos 0 Comments

UPDATE February 3, 2020: We updated the Restrictions and missing features section because some of them don't apply anymore.


The new Code Review is finally available for macOS starting on release 8.0.16.3859.

You can now request changes to code, ask questions, place regular comments and have full conversations (threaded if needed) about a particular section of code.

Code Review for macOS, finally!

Back in July, we released the first previews of the new Code Review system for Windows. It was a huge upgrade over the old system we had for years. But one of the key requests was still pending: many of you asked for Code Reviews on macOS!

Yes, we had the Code Review in the WebUI for a long time already, but many macOS users wanted something native. Also, the WebUI Code Review still sticks to the old code review approach, and it doesn't feature the new comment threads, or the changes/questions approach.

Keys of the new Code Review

We built the new Code Review around a few key concepts:

  • Good way to have conversations. We didn't have "reply" before.
  • It must be easy to request a change in the code and/or ask a question.
  • It must be easy to know if the change was applied or the question was answered.
  • It must be easy to say a change was applied in a new changeset.

And that's basically what we implemented so far. I'll go through each of them in the following sections.

Better interface for comments and conversations

When you create a new Code Review (just right click on a branch and "New code review"), you visualize a diff or the branch (or changeset) as follows:

Then you can click on a given line to place a comment on it. And after that, it can grow into a full conversation, with threads!

If you just reply to the comments, then a single line is kept. But if you go and reply to an older comment, because you really want to address that, then a thread is created as you can see in the previous screenshot.

We like threaded conversations, and the feature makes Plastic Code Reviews slightly different from what you find in GitHub or other services that force you to keep a single line. Simplicity is good, of course, but we think there are times where you really benefit from this.

Typing the comments themselves is also a pleasant experience: the textbox grows when needed, it is large enough to hold a good amount of text and the feeling is good overall. Yes, we are missing formats, links, some sort of markups... this will come.

Easy to request changes and ask questions

Most of the times you add a comment during a code review is because you want the developer to make a change, or because you have a question about something you don't really understand or suspect might be incorrect. With a regular comment system, it is hard to keep track of the changes you requested and questions you asked and whether they were both solved.

When you enter a comment in a line, the Plastic Code Review looks as follows:

Comments are marked as "change requests" by default. You see it in the icon on the line of code (a blue "C"), and the "request a change" marked on top. We set it by default because most of the times what you need is to ask the developer to change the code.

If you just need to ask a question, then simply click on "Ask a question" to change the type of the comment:

The icon goes from a blue "C" to a green "Q".

What if you just want to place an old comment, not a question or a change (in case it really continues making any sense). Just click the selected option again to go to plain good-old comments:

Marked with a grey "R" that stand for "Review".

Then, it is very easy to keep track of the questions asked, changes requested and general comments in the panel in the bottom:

The lists (in my screenshot, I don't have the third list for normal comments, but you get the point) show the changes, the questions and their statuses. In this case, I have 3 changes to apply and one question to answer.

To me, this is the key of the Code Review system so far. (There's much more to come, but this is like the real key principle.) Because when you come back to the review as a developer, you immediately see what's missing. And when you return as reviewer, you just focus on whether the changes were applied and questions answered.

Easy to apply a change: respond to a change request

You are the developer and got a request to change something. You get back to the branch and make the fix and then want to say "hey, I applied your change". It is quite straightforward thanks to the update in Pending Changes: there is a combo with the pending "change requests" in the branch, so you just have to pick one (or many) to mark them closed.

This is GUI support. All what happens underneath is that the comment of the checkin contains a specific code (the GUID of the change request), so that the server can mark it as done.

List of code reviews

This is also something that was missing on macOS and it is finally available:

Restrictions and missing features

As of 8.0.16.3859, the restrictions are the following. Our plan is to update the list so you can easily track when we remove each restriction and missing feature.

  • Missing feature: Changeset by changeset reviews not available yet. Reviewing changeset by changeset is not ready yet. It is on Windows. Just the full branch is ready now.
  • Restriction: Can't navigate to old comments. It doesn't visualize comments placed in older revisions (not the head of the branch). This happens when, for example, you applied revision comments, and created new revisions for a file in the branch.
  • Restriction: When a changeset has been applied to resolve a change, you cannot click on the changeset to navigate to it.
  • Missing feature: There is no GUIHelp implemented yet.
  • Missing feature: Comments on images. The plan is to allow artists to enjoy reviews too.
  • Missing feature: Always focus first comment when you select a file.

Limitation removed in 8.0.16.3911.

  • Restriction: Can't navigate to old comments. It doesn't visualize comments placed in older revisions (not the head of the branch). This happens when, for example, you applied revision comments, and created new revisions for a file in the branch.

Limitation removed in 8.0.16.3922.

  • Missing feature: Changeset by changeset reviews not available yet. Reviewing changeset by changeset is not ready yet. It is on Windows. Just the full branch is ready now.

What else is yet to come

  • Multiple reviewers and developers.
  • A notification system.
  • A conversation tab. A place to have conversations not constrained to a single file or comment but review-wide.
  • Review scripts. A super powerful way to explain the reviewer how to navigate the diffs to save tons of time.

All of these features are described here.

Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios: