Towards Test-Driven Conflict Resolution - Schürmann, Jonas; Steffen, Bernhard (Electronic Communications of the EASST, 2025)
We introduce a test-first approach to conflict resolution: When merge conflicts arise, developers first execute and debug the conflicted program with a lazy interpreter. Only when they have created sufficient understanding of the program behavior they start to make resolution decisions. Our approach addresses a long-standing problem: Merge conflicts still break the development tools that are desperately needed in the difficult search for good conflict resolutions. Developers are forced to blindly resolve all conflicts upfront before they can start to explore the problems. Lazy interpretation overcomes this limitation by restoring debugging and testing capabilities in the presence of conflicts. Besides the interactive exploration, we leverage lazy interpretation for test-by-test conflict analysis and conflict resolution synthesis. The combination of static analyses on the fine-grained version history, dynamic analysis during interpretation, and immediate feedback from the test execution facilitates an effective conflict resolver.