skip to main content
10.1145/2661136.2661137acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

The Semantics of Version Control

Published: 14 October 2014 Publication History

Abstract

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.

References

[1]
O'Sullivan, B.: Making sense of revision-control systems. Communications of the ACM 52(9) (2009) 56--62.
[2]
Floyd, R. W.: Assigning meaning to programs. In: Proceedings of the Symposium on Applied Maths. Volume 19., AMS (1967) 19--32.
[3]
Hoare, C.: An axiomatic basis for computer programming. Communications of the ACM 12(10) (1967) 576--583.
[4]
Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: Logic in Computer Science, IEEE (2002) 55--74.
[5]
O'Hearn, P., Reynolds, J., Yang, H.: Local reasoning about programs that alter data structures. In: Computer Science Logic, Springer (2001) 1--19.
[6]
Marc, J.: The source code control system. IEEE Transactions on Software Engineering. SE-1 (4) (1975) 364--470.
[7]
Grune, D.: Concurrent versions system, a method for independent cooperation. Unpublished note (1986).
[8]
Cederqvist, P.: Version Management with CVS. Network Theory Ltd. (2002).
[9]
Vesperman, J.: Essential CVS. O'Reilly Media (2003).
[10]
Collins-Sussman, B., Fitzpatrick, B. W., Pilato, C. M.: Version Control with Subversion. O'Reilly (2004).
[11]
Mason, M.: Pragmatic Version Control: Using Subversion. Pragmatic Bookshelf (2006).
[12]
Rooney, G.: Practical Subversion. Apress (2006).
[13]
Roundy, D., et al.: Darcs http://www.darcs.net.
[14]
O'Sullivan, B.: Mercurial: The Definitive Guide. O'Reilly Media (2009).
[15]
Chacon, S.: Pro Git. Apress (2009).
[16]
Swierstra, W.: A Functional Specification of Effects. PhD thesis, University of Nottingham (November 2008).
[17]
Swierstra, W., Altenkirch, T.: Beauty in the beast. In: Proceedings of the ACM SIGPLAN workshop on Haskell workshop. Haskell '07 (2007) 25--36.
[18]
The Coq development team: The Coq proof assistant reference manual. LogiCal Project (2004) Version 8.0.
[19]
Martin-Löf, P.: Intuitionistic type theory. Volume 17. Bibliopolis Naples, Italy (1984) Notes by Giovanni Sambin.
[20]
Appleton, B., Berczuk, S., Cabrera, R., Orenstein, R.: Streamed lines: Branching patterns for parallel software development. In: Pattern Languages of Programs. (1998).
[21]
Cláudio Lourenço, Neves, R., Cunha, A., Kang, E., José Barros: The truth about git: modeling git with alloy (2013).
[22]
Jackson, D.: Alloy: a lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology (TOSEM) 11(2) (2002) 256--290.
[23]
Lippe, E.: Camera: Support for Distributed Cooperative Work. PhD thesis, Universiteit Utrecht (1992).
[24]
Van Den Hamer, P., Lepoeter, K.: Managing design data: The five dimensions of CAD frameworks, configuration management, and product data management. Proceedings of the IEEE 84(1) (1996) 42--56.
[25]
Virtanen, T.: Git for computer scientists. http://eagain.net/articles/git-for-computer-scientists/
[26]
Pool, M.: Integrals and derivatives http://sourcefrog.net/weblog/software/vc/derivatives.html.
[27]
Mimram, S., Di Giusto, C.: A categorical theory of patches. In: Mathematical Foundations of Programming Semantics. (2013).
[28]
Angiuli, C., Morehouse, E., Licata, D. R., Harper, R.: Homotopical patch theory. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming. ICFP '14 (2014) 243--256.
[29]
Jacobson, J.: A formalization of darcs patch theory using inverse semigroups. Technical report, Technical Report CAM report 09-83, UCLA (2009).
[30]
Dagit, J.: Darcs patch theory. The Monad.Reader 9 (November 2007).
[31]
Dagit, J.: Type-correct changes - a safe approach to version control implementation. Master's thesis, Oregon State University (2009).
[32]
Roundy, D.: Darcs: distributed version management in haskell. In: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, ACM (2005) 1--4.
[33]
Ellis, C. A., Gibbs, S. J.: Concurrency control in groupware systems. In: Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data. SIGMOD (1989) 399--407.
[34]
Foster, J. N., Greenwald, M. B., Moore, J. T., Pierce, B. C., Schmitt, A.: Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. In: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages. POPL (2005) 233--246.
[35]
Backhouse, R., Jansson, P., Jeuring, J., Meertens, L.: Generic programming: an introduction. In: Advanced Functional Programming. Springer (1999) 28--115.
[36]
Löh, A.: Exploring Generic Haskell. PhD thesis, Universiteit Utrecht (2004).
[37]
Reynolds, J. C.: Theories of programming languages. Cambridge University Press (2009).

Cited By

View all
  • (2023)A Version Control System for Point CloudsRemote Sensing10.3390/rs1518463515:18(4635)Online publication date: 21-Sep-2023
  • (2021)Concise, type-safe, and efficient structural diffingProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454052(406-419)Online publication date: 19-Jun-2021
  • (2020)InfrastructorProceedings of the 51st ACM Technical Symposium on Computer Science Education10.1145/3328778.3366905(1005-1011)Online publication date: 26-Feb-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Onward! 2014: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software
October 2014
332 pages
ISBN:9781450332101
DOI:10.1145/2661136
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 October 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. hoare logic
  2. semantics
  3. separation logic
  4. version control

Qualifiers

  • Research-article

Conference

SPLASH '14
Sponsor:

Acceptance Rates

Onward! 2014 Paper Acceptance Rate 16 of 35 submissions, 46%;
Overall Acceptance Rate 40 of 105 submissions, 38%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)38
  • Downloads (Last 6 weeks)9
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)A Version Control System for Point CloudsRemote Sensing10.3390/rs1518463515:18(4635)Online publication date: 21-Sep-2023
  • (2021)Concise, type-safe, and efficient structural diffingProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454052(406-419)Online publication date: 19-Jun-2021
  • (2020)InfrastructorProceedings of the 51st ACM Technical Symposium on Computer Science Education10.1145/3328778.3366905(1005-1011)Online publication date: 26-Feb-2020
  • (2020)Representation of concurrent points of view of urban changes for city modelsJournal of Geographical Systems10.1007/s10109-020-00319-1Online publication date: 20-Feb-2020
  • (2019)An efficient algorithm for type-safe structural diffingProceedings of the ACM on Programming Languages10.1145/33417173:ICFP(1-29)Online publication date: 26-Jul-2019
  • (2018)Introduction to Bidirectional TransformationsBidirectional Transformations10.1007/978-3-319-79108-1_1(1-28)Online publication date: 28-Mar-2018
  • (2017)Type-directed diffing of structured dataProceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development10.1145/3122975.3122976(2-15)Online publication date: 3-Sep-2017
  • (2016)Homotopical patch theoryJournal of Functional Programming10.1017/S095679681600019826Online publication date: 13-Sep-2016
  • (2014)Homotopical patch theoryACM SIGPLAN Notices10.1145/2692915.262815849:9(243-256)Online publication date: 19-Aug-2014
  • (2014)Versionable, Branchable, and Mergeable Application StateProceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software10.1145/2661136.2661151(29-42)Online publication date: 20-Oct-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media