Spork: Structured Merge for Java with Formatting Preservation
Simon Lars\'en (1), Jean-R\'emy Falleri (2), Benoit Baudry (1), Martin, Monperrus (1) ((1) KTH Royal Institute of Technology, (2) Univ. Bordeaux,, Bordeaux INP, CNRS, LaBRI, IUF)

TL;DR
SPORK is a new structured merge tool for Java that significantly preserves code formatting and improves speed over existing tools, reducing merge conflicts in software development.
Contribution
SPORK introduces a novel structured merge approach for Java that maintains formatting better and runs faster than current state-of-the-art tools.
Findings
SPORK preserves formatting more effectively than existing tools.
SPORK reduces worst-case running times in practice.
Demonstrated on 1740 real-world merges from 119 projects.
Abstract
The highly parallel workflows of modern software development have made merging of source code a common activity for developers. The state of the practice is based on line-based merge, which is ubiquitously used with "git merge". Line-based merge is however a generalized technique for any text that cannot leverage the structured nature of source code, making merge conflicts a common occurrence. As a remedy, research has proposed structured merge tools, which typically operate on abstract syntax trees instead of raw text. Structured merging greatly reduces the prevalence of merge conflicts but suffers from important limitations, the main ones being a tendency to alter the formatting of the merged code and being prone to excessive running times. In this paper, we present SPORK, a novel structured merge tool for JAVA. SPORK is unique as it preserves formatting to a significantly greater…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
