As software becomes increasingly complex, software configuration
management is becoming ever more important. This paper shows how logics for
reasoning about mutable state, such as separation logic, can also be used to give
semantics for version control systems. By applying these ideas from the
programming language research community, developers may reason formally about
the broader software development process.