A Deeper Empirical Analysis of 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. If the student(s) are interested, the work of this seminar+thesis will be published together at a journal.

Goal

You can extend our work in some of the following directions:

  1. Cleaner research subjects: filter projects without merge conflicts, remove duplicate merges or forks
  2. Include the analysis of contexts from non-conflicting files.
  3. Add a near-miss analysis to gain insights of whether non-derivable resolutions would in fact be still close to a derivable one.
  4. Analyze whether big/old/many authored projects behave differently than smaller/younger/fewer authored ones.
  5. Analyze the chunk granularity in more detail.
  6. Add new attributes (be creative) and analyze them as a research question: are newer versions preferred while resolving?, do commiters (on their branch) choose their own version? Does the branch author count influence resolution behavior? etc.

Requirements

Java, Python and SQL knowledge is needed. The student(s) are required to combine this work in a seminar and thesis.

Pointers

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

Contact

Alexander Boll, alexander.boll@unibe.ch