Version-control specialist Codice Software has launched a language-aware source code merge tool called Semantic Merge. Billed as a world first, the tool uses "merge technology" built into the firm's Plastic SCM core product to consolidate files that are heavily refactored in parallel by different developers, regardless of the code programming language.
White PapersMore >>
It will be first available for developers using C# and Visual Basic .NET as part of the tool's beta launch release, with plans to extend use of the tool for developers using Java and C++. Semantic Merge is not limited to developers using Plastic SCM and can be configured to work with Git, Subversion, Perforce, ClearCase, Team Foundation Server, Mercurial, and many others.
Modern Agile software development is based on a shared working pattern typified by "modify then merge" (then repeat) working practices. Coders work in parallel on the same codebase performing concurrent changes, potentially inside the same files that need to be reconciled back together (merged in version control terms).
In order to perform these code merges, developers rely on merge tools.
As readers may know, merge systems today use text-based algorithms. But these tools won't actually consider the programming language the code is written in just the modifications on the text so existing merge tools are language agnostic and have a wide operation range.
However, not being able to act based on the specific programming language structures means the merge tools are heavily dependent on the position of the texts being modified, which strongly restricts developers' ability to perform changes concurrently and improve code quality and readability by refactoring.
In light of this situation, Codice says that coders can use Semantic Merge to track and preserve all changes performed concurrently, i.e. making sure that all code is assembled back together precisely.
The new three-way merge tool understands code structure. It doesn't use a textual comparison method to compare its three contributors. Instead, it uses a new approach to merge, which stems from the work Codice Software performed to develop the Plastic SCM merge system and Xmerge technology, and adds language-dependent parsing to create a source code merging machine. Using this language-aware source code tool, software developers can restructure existing bodies of code much more quickly and improve overall code quality and reliability.
Every day, millions of lines of code are written, modified, moved, and reorganized as developers update and create new features in games, devices, and applications. In order to improve code quality and readability throughout the software lifecycle, developers engage in refactoring, a software practice that requires frequent structure changes.
Software developers often work on the same codebase performing concurrent changes, potentially inside the same files, that eventually need to be merged in version control terms. However, merging code becomes a difficult process because existing tools use text-based algorithms, which are heavily dependent on the position of the texts being modified and don't consider the programming language the code is written on.
"We noticed that there were a large number of merge scenarios that could not be managed by current text-based, language agnostic merge tools" said Francisco Monteverde, CEO of Codice Software. "We set out to create an innately smart, language-aware tool. Our Semantic Merge tool is able to combine files that are heavily refactored in parallel by different developers and rapidly incorporate changes that no other merge tool on the market can achieve based on text-comparison algorithms alone. We are committed to offering superior technology in the distributed versioning control system, and now with the release of Semantic Merge, our merging technology is second to none in the industry."