Code Merging Using Transformations and Member Identity
summary
A merging technique encodes edits as language-aware transformations and matches class members by UUIDs in source comments, applying additions first then identifier translation and renames to preserve references. A Jaid prototype for Java (about 6K lines of Kotlin, 35 transformation types) uses JavaParser and GumTree, is tested on 63 merge scenarios from two projects (6 excluded), yields 43 conflict-free merges (34 compiled, 9 had unrelated compilation gaps) and 40 real conflicts in 14 cases, with runs around 3–14 seconds.
AI-written summary · about
chapters (19)
- 0:00Code merging challenges
- 1:23False positives in merging
- 3:09Merge conflicts with Point class
- 5:15Ideal merge with member identity
- 7:24Approach overview
- 9:57Conflict detection
- 11:00Merge process
- 12:50Jade tool implementation
- 13:34Experiment design
- 16:44Results analysis
- 17:50Drawbacks and benefits
- 20:00Future work
- 20:42Conflict resolution
- 21:27Q&A
- 21:47Storing identity
- 23:11Comparison with other merges
- 25:47False positives in study
- 26:52Portability to other languages
- 27:34Conclusion
related talks
24mVerified Three-Way Program Merge
26mAutomating Language Migration at Scale: Tools, Tradeoffs, and the Role of AI
12mHow we automated code maintenance
25mHow we automated code maintenance
14mSpeaking in Different Tongues: balancing a code base across different languages
26mMerge Like It's 2099
22mShifting Left, Shifting Right
29mLessons from a Librarian
