Way out of the Merging-Hell
Keywords:
Branch Models, Merging Strategies, Source Control Management, Agile, Process Automation, DevOps, Configuration Management, Software EngineeringAbstract
Source Control Management (SCM) tools have a long tradition in the software development process and
they occupy an important part of the daily work in any development team. The first documented type of these systems SCCS appeared in 1975 and was described by Rochkind [1]. To date, a large number of other SCM systems have appeared in centralized or distributed forms. An example of centralized variants is Subversion (SVN) or for distributed solutions Git is a representative. Each new system brings many performance improvements and also a lot of new concepts. In "The History of Version Control" [2], Ruparelia gives an overview of the evolution of various free and commercial SCM systems. However, there is one basic use that all these systems have in common. Branching and merging. As simple as the concept is to fork a code baseline into a new branch and merge the changes back together later, SCM systems are difficult to deal with. Giant pitfalls during branching and merging can cause a huge amount of merge conflicts that cannot be handled manually. This article discusses why and where semantic merge conflicts occur and what techniques can be used to avoid them.