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.
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.
Original language | English |
---|---|
Place of Publication | Utrecht |
Publisher | UU BETA ICS Departement Informatica |
Number of pages | 14 |
Publication status | Published - Mar 2017 |
Publication series
Name | Technical Report Series |
---|---|
Publisher | UU Beta ICS Departement Informatica |
No. | UU-CS-2017-002 |
ISSN (Print) | 0924-3275 |
Keywords
- deprendent types
- generic programming
- edit distance
- patches