A Principled Approach to Version Control
Andres Löh, Wouter Swierstra and Daan Leijen

Version control systems are essential for managing the distributed development of large software projects. We present a formal model for reasoning about version control. In particular, we give a general definition of patch. Patches abstract over the data on which they operate, making our framework equally suited for version control of everything from highly-structured XML files to blobs of bits. We model repositories as a multiset of patches. The mathematical definitions of patches and repositories enable us to reason about complicated issues such as conflicts and conflict resolution.

Draft (an earlier version of this draft has been submitted to FASE 2007)

Valid XHTML 1.0! Valid CSS!

Andres Löh, 2006-10-14