research-article

Purposes, concepts, misfits, and a redesign of git

Published:19 October 2016Publication History
Skip Abstract Section

Abstract

Git is a widely used version control system that is powerful but complicated. Its complexity may not be an inevitable consequence of its power but rather evidence of flaws in its design. To explore this hypothesis, we analyzed the design of Git using a theory that identifies concepts, purposes, and misfits. Some well-known difficulties with Git are described, and explained as misfits in which underlying concepts fail to meet their intended purpose. Based on this analysis, we designed a reworking of Git (called Gitless) that attempts to remedy these flaws.

To correlate misfits with issues reported by users, we conducted a study of Stack Overflow questions. And to determine whether users experienced fewer complications using Gitless in place of Git, we conducted a small user study. Results suggest our approach can be profitable in identifying, analyzing, and fixing design problems.

Skip Supplemental Material Section

Supplemental Material

References

  1. B. Appleton, S. P. Berczuk, R. Cabrera, and R. Orenstein. Streamed lines: Branching patterns for parallel software development. 1998.Google ScholarGoogle Scholar
  2. E. T. Barr, C. Bird, P. C. Rigby, A. Hindle, D. M. German, and P. Devanbu. Cohesive and isolated development with branches. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering. Springer, April 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Bennett. 10 things I hate about git, 2012.Google ScholarGoogle Scholar
  4. M. Biazzini, M. Monperrus, and B. Baudry. On analyzing the topology of commit histories in decentralized version control systems. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on, pages 261–270, Sept 2014. doi: 10.1109/ICSME.2014.48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Bird and T. Zimmermann. Assessing the value of branches with what-if analysis. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE ’12, pages 45:1– 45:11, New York, NY, USA, 2012. ACM. ISBN 978- 1-4503-1614-9. doi: 10.1145/2393596.2393648. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Brindescu, M. Codoban, S. Shmarkatiuk, and D. Dig. How do centralized and distributed version control systems impact software changes? In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pages 322–333, New York, NY, USA, 2014. ACM. ISBN 978- 1-4503-2756-5. doi: 10.1145/2568225.2568322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. P. Brooks. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley Professional, 1995. ISBN 978-0-201-83595-3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. P. Brooks. The Design of Design: Essays from a Computer Scientist. Addison-Wesley Professional, 2010. ISBN 978-0- 201-36298-5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Chacon and B. Straub. Pro Git. Apress, 2 edition, 2014. ISBN 978-1484200773. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. Church, E. Söderberg, and E. Elango. A case of computational thinking: The subtle effect of hidden dependencies on the user experience of version control. 2014. PPIG 2014 - 25th Annual Workshop.Google ScholarGoogle Scholar
  11. B. de Alwis and J. Sillito. Why are software projects moving from centralized to decentralized version control systems? In Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering, CHASE ’09, pages 36–39, Washington, DC, USA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. IEEE Computer Society. ISBN 978-1-4244-3712-2. doi: 10.1109/CHASE.2009.5071408.Google ScholarGoogle Scholar
  13. S. Garfinkel, D. Weise, and S. Strassmann. The UNIX Hater’s Handbook: The Best of UNIX-Haters On-line Mailing Reveals Why UNIX Must Die! IDG Books Worldwide, Inc., June 1994. ISBN 978-1-56884-203-5.Google ScholarGoogle Scholar
  14. G. Gousios, M. Pinzger, and A. v. Deursen. An exploratory study of the pull-based software development model. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pages 345–355, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2756-5. doi: 10.1145/2568225.2568260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. R. G. Green and M. Petre. Usability analysis of visual programming environments: a “cognitive dimensions” framework. Journal of Visual Languages & Computing, 7(2): 131–174, 1996.Google ScholarGoogle ScholarCross RefCross Ref
  16. A. Henderson and J. Johnson. Conceptual Models: Core to Good Design. Synthesis Lectures on Human-Centered Informatics. Morgan & Claypool Publishers, 2011. ISBN 978-1608457496. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Jackson. Towards a theory of conceptual design for software. In 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), Onward! 2015, pages 282–296, New York, NY, USA, 2015. ACM. ISBN 978-1-4503- 3688-8. doi: 10.1145/2814228.2814248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Y. Jiang, B. Adams, and D. M. German. Will my patch make it? and how fast?: Case study on the linux kernel. In Proceedings of the 10th Working Conference on Mining Software Repositories, MSR ’13, pages 101–110, Piscataway, NJ, USA, 2013. IEEE Press. ISBN 978-1-4673-2936-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Loeliger and M. McCullough. Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development. O’Reilly Media, second edition, 2012. ISBN 978-1-4493-1638-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. K. Mu¸slu, C. Bird, N. Nagappan, and J. Czerwonka. Transition from centralized to decentralized version control systems: A case study on reasons, barriers, and outcomes. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pages 334–344, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2756-5. doi: 10.1145/2568225.2568284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Nielsen and R. Molich. Heuristic evaluation of user interfaces. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’90, pages 249–256, New York, NY, USA, 1990. ACM. ISBN 0- 201-50932-6. doi: 10.1145/97243.97281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. B. O’Sullivan. Mercurial: The Definitive Guide. O’Reilly Media, 2009. ISBN 978-0596800673. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Perez De Rosso and D. Jackson. What’s wrong with git? a conceptual design analysis. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2013, pages 37–52, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2472-4. doi: 10.1145/2509578.2509584. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. Phillips, J. Sillito, and R. Walker. Branching and merging: An investigation into current version control practices. In Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering, CHASE ’11, pages 9–15, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0576-1. doi: 10.1145/1984642.1984645. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. M. Pilato, B. Collins-Sussman, and B. W. Fitzpatrick. Version Control with Subversion. O’Reilly Media, 2008. ISBN 0596510330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. B. Pollack. Unorthodocs: Abandon your DVCS and return to sanity, 2015.Google ScholarGoogle Scholar
  27. P. C. Rigby, E. T. Barr, C. Bird, P. Devanbu, and D. M. German. What effect does distributed version control have on oss project organization? In Proceedings of the 1st International Workshop on Release Engineering, RELENG ’13, pages 29–32, Piscataway, NJ, USA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. IEEE Press. ISBN 978-1-4673-6441-6.Google ScholarGoogle Scholar
  29. C. Rodríguez-Bustos and J. Aponte. How distributed version control systems impact open source software projects. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, MSR ’12, pages 36–39, Piscataway, NJ, USA, 2012. IEEE Press. ISBN 978-1-4673-1761-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 2664452.Google ScholarGoogle Scholar
  31. C. Walrad and D. Strom. The importance of branching models in scm. Computer, 35(9):31–38, Sep 2002. ISSN 0018-9162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. doi: 10.1109/MC.2002.1033025.Google ScholarGoogle Scholar

Index Terms

  1. Purposes, concepts, misfits, and a redesign of git

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 51, Issue 10
            OOPSLA '16
            October 2016
            915 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/3022671
            Issue’s Table of Contents
            • cover image ACM Conferences
              OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
              October 2016
              915 pages
              ISBN:9781450344449
              DOI:10.1145/2983990

            Copyright © 2016 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 19 October 2016

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!