Structure-aware Version Control: A generic approach using Agda

Publication date

2017-03

Authors

Miraldo, Victor~Cacciari
Swierstra, W.S.ORCID 0000-0002-0295-7944ISNI 0000000426852359

Editors

Advisors

Supervisors

DOI

Document Type

Report
Open Access logo

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.