An Interactive Tool for Feedback-Driven Step-by-Step Merge Conflict Resolution

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.

Motivation

Currently, developers have to completely resolve all merge conflicts, before they can commence their work on a conflict-free version and commit. We want more freedom! If the student(s) are interested, the work of this seminar or thesis can be also published together at a conference.

Goal

You create a plugin or other tool that is enabled in the moment of a merge, specifically one with conflicts. Your tool gives the developer the opportunity 1. to choose a resolution for each individual conflict, until all conflicts are resolved. 2. The developer can then compile this version and run tests. The developer is prompted with the results of the compilation/tests and circles back to 1. There they may choose different resolution(s). If the developer is satisfied with the results of compilation/tests, they can finalize this version and commit it. Overall, the developer can try out different resolutions, without needing to commit right away, or falling back to the original tentative merge without any choice of resolution at all.

Requirements

good Java and Eclipse knowledge or very good knowledge of another practical language that can be used to write hooks for a common IDE like VS, IntelliJ, Eclipse.

Pointers

Addressing Git merge conflicts

Contact

Alexander Boll, alexander.boll@unibe.ch