Structure-aware Version Control: A generic approach using Agda
Files
Publication date
2017-03
Editors
Advisors
Supervisors
DOI
Document Type
Report
Metadata
Show full item recordCollections
License
Abstract
Modern version control systems are largely based on the UNIX diff3 program for merging line-based edits on a given file. Unfortunately, this bias towards line-based edits does not work well for all file formats, which may lead to unnecessary conflicts. This paper describes a data type generic approach to version control that exploits a file’s structure to create more precise diff and merge algorithms. We prototype and prove properties of these algorithms using the dependently typed language Agda; Our ideas can be, nevertheless, be transcribed to Haskell yielding a more scalable implementation.
Keywords
deprendent types, generic programming, edit distance, patches
Citation
Miraldo, VC & Swierstra, W 2017, Structure-aware Version Control : A generic approach using Agda. Technical Report Series, no. UU-CS-2017-002, UU BETA ICS Departement Informatica, Utrecht.