Merge++

  • Title: Merge++
  • Subtitle: Turning software merge conflicts into conflict-induced variability
  • Duration: 2023 - 2027
  • Funding:

About

Merging is an essential operation in software version control that reconciles concurrent changes to multiple working copies of a shared development artifact. However, available merge techniques often report considerable amounts of merge conflicts that must be resolved manually, bothering developers in their daily work and hampering continuous integration. Most research on software merging has tackled this problem by increasing the accuracy of conflict detection, yet with limited impact.

In Merge++, we aim to develop foundations that enable a novel paradigm of software version control that temporarily tolerates merge conflicts. The key idea is to take a radically different view on merge conflicts. Instead of enforcing their resolution upon each merge, conflicts shall be considered as a source of software variability that represents different ambitions of developers that shall be made explicit. A merged artifact that comprises such conflict-induced variability may vary its behavior. These different behaviors may be investigated. Eventually, based on the analysis results, developers may take informed decisions to permanently bind or even eliminate conflict-induced variability, which yields a deferred conflict resolution.

Our approach to realize this research vision is to leverage concepts and techniques from research on software product lines, which deals with the systematic handling of software variability. In a nutshell, merge conflicts whose resolution is to be deferred shall be transparently converted to conflict-induced variability, while developers may continue working on individual projections of the integrated version. The binding of accumulated conflict-induced variability shall be informed by adapting concepts from software product-line analysis. The question of how to seamlessly integrate such systematic handling of conflict-induced software variability to efficiently deal with merge conflicts in the context of software version control constitutes an open scientific problem to be solved by Merge++.

We summarize our two overall research goals as follows: