Codice Software has launched Semantic Merge for Java to follow up its developer tools for programmers using C# and Visual Basic .NET. Available to open source contributors and open project developers for free, Semantic Merge is a language-aware, three-way source code merging tool.
- Enhance and Optimize your Mobility/BYOD Infrastructure
- Marketing's New Imperative: Bring Social to Your Team
- SaaS and E-Discovery: Navigating Complex Waters
- SaaS 2011: Adoption Soars, Yet Deployment Concerns Linger
- Transforming Operations - Part 1: Managing Outsourced Development in Telecommunications
- How to Transform Paper Insurance Documents into Digital Data
The firm is aiming to address the needs of developers engaging in refactoring as they work on millions of lines of code being written, modified, moved, and reorganized at any one time. This Distributed Version Control System (DVCS) serves modern Agile software development — as such, it is based on coders' abilities to work in parallel on the same codebase and perform concurrent changes, potentially inside the same files that need to be merged back together.
Heavy Refactoring in Parallel
Using merge technology built into Codice's own signature product, Plastic SCM, Semantic Merge works to consolidate files that are "heavily refactored in parallel" by different developers — and this is regardless of the code programming language.
NOTE: This merge tool can also be configured for use with Git, Subversion, Perforce, ClearCase, Team Foundation Server, Mercurial, and many others.
Codice's Francisco Monteverde explains that all other merge systems today use text-based algorithms that don't identify the programming language the code is written in but just the modifications to text. "The inability for merge tools to fully understand programming language structures means they are heavily dependent on the position of the texts being modified, which greatly restricts developers' abilities to perform concurrent changes and improve code quality and readability by refactoring," he said.