Introduction to Version Control

Introduction to Version Control

Introduction to Version Control Leonardo Gresta Paulino Murta [email protected] From the beginning… • 50s – Configuration Management used in the production of military airplanes, weapons, and space rockets • 60s & 70s – Born of Software Configuration Management – Still focus on military applications • 80s & 90s – Civil uses of Configuration Management (MIL à EIA, IEEE, ISO, etc.) – First international standards on Configuration Management – Assimilation by non-military organizations Leonardo Murta Introduction to Version Control 2 What about Version Control? Year System Highlight 1972 SCCS First VCS 1982 RCS First Open Source VCS 1986 CVS as scripts over RCS First client-server Open Source VCS 1990 CVS rewritten in C 1992 Rational ClearCase Market-leader proprietary VCS SuBversion as an evolution of CVS 2000 BitKeeper First (proprietary) VCS to Host Linux code Git Created By Linus Torvalds 2005 Mercurial GNU Bazaar Obs.: far from Being a complete list Leonardo Murta Introduction to Version Control 3 Version Control History • 70’s/80’s – local systems – SCCS (1972) – RCS (1982) Leonardo Murta Foundations 4 Version Control History • 70’s/80’s – local systems – SCCS (1972) – RCS (1982) checkout Workspace Repository commit Leonardo Murta Foundations 5 Version Control History • 80’s/90’s – client-server systems – CVS (1986) – Subversion (2000) Leonardo Murta Foundations 6 Version Control History • 80’s/90’s – client-server systems – CVS (1986) – Subversion (2000) client server check-out / update Workspace Repository commit Leonardo Murta Foundations 7 Version Control History • 2000’s – peer-to-peer systems – Git (2005) – Mercurial (2005) – GNU Bazaar (2005) Leonardo Murta Foundations 8 Version Control History • 2000’s – peer-to-peer systems – Git (2005) – Mercurial (2005) – GNU Bazaar (2005) check-out clone / pull Workspace Repository Repository ... commit pusH Leonardo Murta Foundations 9 Anti-definitions Configuration Version control is not Management is not backup (only) version control Version control is not Version control does only for large and not avoid changes complex systems Version control is not only for large and distributed teams Leonardo Murta Introduction to Version Control 10 Forces • Complex projects in terms of size, sopHistication, and tecHnologies • Huge teams, usually distributed geograpHically • Execution requirements for different hardware and software platforms • Support for different languages • Different flavors to manage cost/benefit demands (e.g., desktop, standard, professional, and enterprise) Leonardo Murta Introduction to Version Control 11 Forces • Need to reduce tHe development time to fix defects to comply to Service Level Agreement (SLA) contracts and user expectations • Necessity to deal witH tHe inevitable chaos related to tHe creative activity of software development, using metHods and tools to maximize productivity and minimize defects Leonardo Murta Introduction to Version Control 12 Signals of the absence of Version Control • Source-coDe loss • Libraries Fail unexpecteDly (depenDency hell) • DiFFiculty to unDerstanD what happened with a program or its parts • DiFFiculty to establish when changes were maDe, why, anD by whom Leonardo Murta Introduction to Version Control 13 Signals of the absence of Version Control • Requirements alreaDy implementeD Disappear from the source-coDe • Dates in the FolDer/File names • Long living commenteD source- coDe • Impossibility to match the executable program version with its source-coDe version Leonardo Murta Introduction to Version Control 14 Some Version Control Benefits • Increasing organizational memory • Development more dependent to the process • Safe parallel development • Control over the software development and its evolution • Documentation about the software evolution • Traceability among versions Leonardo Murta Introduction to Version Control 15 References • Leon A., “Software Configuration Management Handbook”, ArtecH House, 1st ed., 2004. • CHacon S., “Pro Git”, 2nd ed., 2014. Leonardo Murta Foundations 16 Introduction to Version Control Leonardo Gresta Paulino Murta [email protected].

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us