Feasibility of Partial Merging

Page content

Context

Merging of work in cooperating sofware development often results in merge conflicts. Human effort is currently needed to resolve such merge conflicts. Studying merge conflicts and how to automatically resolve (or prevent them) is an active research area. In a merge, git may auto-merge non-conflicting parts (“partial merge”), while conflicting parts get highlighted as a conflict. Such conflicts hinder developers from commencing their work before they are completely resolved.

Motivation

Developers may only want to partially merge their work, while leaving out conflicts. Using only the auto-merged parts, while leaving out conflicting parts may sometimes be a viable strategy. In such cases, the developer can integrate some information of the other branch, already. In this seminar/thesis, you study whether this is indeed viable. If the student(s) are interested, the work of this seminar+thesis can be published together at a workshop or conference.

Goal

  1. Develop a prototype, that auto-resolves all conflicts with the “ours” version to create a partial merge.
  2. Run the compiler and unit tests on the partial merge.
  3. Analyze how often partial merging results in working code on which developers could continue their work.

Requirements

Good knowledge in a practical and current programming language, where developers often use unit tests, e.g. Java.

Pointers

Addressing Git merge conflicts

Contact

Alexander Boll, alexander.boll@unibe.ch