Channels ▼


SemanticMerge Is First Language-Aware Diff and Merge Tool

Codice Software has confirmed that SemanticMerge is now available. This represents what the company says is the first language-aware diff and merge tool, and it will now be available on a monthly subscription basis. SemanticMerge sits inside Plastic SCM, a distributed version-control system engineered for users who require extensive branching and merging, distributed (multi-site/global) scenarios, and typically, high performance.

SemanticMerge 1.0 features support for Java, C#, and VB.NET and will be "soon upgraded" with C and then C++ and JavaScript. The product itself is currently available for the Windows and Linux platforms — the Apple Mac OS X version will be released before the end of the year.

90% Efficiency Boost

According to the software development team, "SemanticMerge reduces the number of lines of code to be reviewed during diff and merge by a factor of 90%, which means an incredible productivity boost. SemanticMerge has been launched after a six month beta period where we received a huge amount of feedback from the early adopters and beta testers."

The firm reminds us that if you are a .NET software application developer, then you will have heard of the CodeLens feature in Visual Studio 2013 + TFS. This decorates every method in your C# file with useful version-control information like how many times it has been modified and when, on a per-method basis.

In response to this Codice says, "We've just released 'Semantic Method History', which is… well, CodeLens done right!"

According to the Plastic SCM blog, "We used to share CodeLens limitations but now we've just released a new version of MethodHistory that is based on our SemanticDiff technology; hence, it can track methods (and properties and classes…) not only when they're moved to a different location within the same class, but also when they are moved to a different subclass, to a different class within the same file, or even when they are renamed!"

The big difference between this current version and the previous generation (and presumably with CodeLens, too) is that before, the team just walked the file version history locating the method by name. "But now we are able to calculate semantic differences between versions and do a much better job locating the methods, properties, and so on," they say.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.