A Visual Approach to Analyzing Merge Conflict Resolutions

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 our study (linked below), we studied merge conflicts and their resolution in some level. We analyzed merge conflicts and their resolution on different granularities: merge, file, individual chunks and their contexts. We define “derivable” merge resolutions to be either ours, theirs, base or a combination of them. Resolutions that differ by adding completely new code (that is not presented to the developer in the tentative merge) or changing the non-conflicting context are labeled as “non-derivable”.

Motivation

We are interested in automating merge conflict resolutions and gaining empirical knowledge how developers resolve them in practice. Using this knowledge, it may be possible to develop an automatic or semi-automatic merge recommender.

Goal

You can extend our work in the following directions:

  1. Analyze merge conflict resolutions on the chunk level (the lowest level).
  2. Visualize and analyze where in a file merge conflicts happen.
  3. Provide a tool for an easier manual analysis of merge conflicts.

Requirements

Java, Python and SQL knowledge is needed.

Pointers

Towards Semi-Automated Merge Conflict Resolution: Is It Easier Than We Expected?

Contact

Alexander Boll, alexander.boll@unibe.ch Manuel Ohrndorf, manuel.ohrndorf@unibe.ch