ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Version Control
    Systems
what they are and why you want one



           Jon Warbrick
            Tony Finch
         [and Ben Harris]
Do you recognise this?
Media Wiki
Some other examples
                            Game saved states
  MS Word ¡®track changes¡¯

                            Apple Time
                             Machine

Adobe Version Que

         MS Sharepoint
What do you get?

? Revision history
? Change comments
? What¡¯s changed?
? Collaborative and group working
? Somewhere for automation
Version control
      101
¡°°ù±ð±è´Ç²õ¾±³Ù´Ç°ù²â¡±
¡°check out¡±
¡°working tree¡±
 (or ¡°working copy¡±)
¡°³¦´Ç³¾³¾¾±³Ù³Ù¾±²Ô²µ¡±
$ diff -c mary2.txt mary1.txt
*** mary2.txt	

--- mary1.txt	

                      2012-04-17 17:44:24.000000000 +0100
                      2012-04-17 17:45:04.000000000 +0100
                                                            ¡°diff¡±

*** 1,6 ****
  Mary had a little lamb,
! whose ?ees where white as snow.

 And everywhere that Mary went,
 the lamb was sure to go.

--- 1,11 ----
  Mary had a little lamb,                                            Visual diff example
! whose ?eece was white as snow.

 And everywhere that Mary went,
 the lamb was sure to go.

+ It followed her to school one day
+ which was against the rules.
+
+ It made the children laugh and play,
+ to see a lamb at school.
¡°±ô´Ç³¦°ì¾±²Ô²µ¡±
¡°³¾±ð°ù²µ¾±²Ô²µ¡±
¡°²ú°ù²¹²Ô³¦³ó¡±
Good for/Not good for
? Good for:
 ? Changes made by humans
 ? Things that look like software source
    trees
? Not good for
 ? Bug tracking, build management
 ? Big blobs of data

More Related Content

More from Jon Warbrick (10)

Dunbar's Number, and what it means to the UIS
Dunbar's Number, and what it means to the UISDunbar's Number, and what it means to the UIS
Dunbar's Number, and what it means to the UIS
Jon Warbrick
?
The 'New [University of Cambridge] Map
The 'New [University of Cambridge] MapThe 'New [University of Cambridge] Map
The 'New [University of Cambridge] Map
Jon Warbrick
?
Syndicated content on your web pages
Syndicated content on your web pagesSyndicated content on your web pages
Syndicated content on your web pages
Jon Warbrick
?
Lessons fro IPv6 day, 2011
Lessons fro IPv6 day, 2011Lessons fro IPv6 day, 2011
Lessons fro IPv6 day, 2011
Jon Warbrick
?
Lessons from IPv6 Day
Lessons from IPv6 DayLessons from IPv6 Day
Lessons from IPv6 Day
Jon Warbrick
?
Google Apps @ Cambridge - What we did
Google Apps @ Cambridge - What we didGoogle Apps @ Cambridge - What we did
Google Apps @ Cambridge - What we did
Jon Warbrick
?
(Why) Passwords don't work
(Why) Passwords don't work(Why) Passwords don't work
(Why) Passwords don't work
Jon Warbrick
?
Web Authenication with Shibboleth - a view from the Flat East
Web Authenication with Shibboleth - a view from the Flat EastWeb Authenication with Shibboleth - a view from the Flat East
Web Authenication with Shibboleth - a view from the Flat East
Jon Warbrick
?
State of the Raven
State of the RavenState of the Raven
State of the Raven
Jon Warbrick
?
Google Apps - SSO and Identity Management at the University of Cambridge
Google Apps - SSO and Identity Management at the University of CambridgeGoogle Apps - SSO and Identity Management at the University of Cambridge
Google Apps - SSO and Identity Management at the University of Cambridge
Jon Warbrick
?
Dunbar's Number, and what it means to the UIS
Dunbar's Number, and what it means to the UISDunbar's Number, and what it means to the UIS
Dunbar's Number, and what it means to the UIS
Jon Warbrick
?
The 'New [University of Cambridge] Map
The 'New [University of Cambridge] MapThe 'New [University of Cambridge] Map
The 'New [University of Cambridge] Map
Jon Warbrick
?
Syndicated content on your web pages
Syndicated content on your web pagesSyndicated content on your web pages
Syndicated content on your web pages
Jon Warbrick
?
Lessons fro IPv6 day, 2011
Lessons fro IPv6 day, 2011Lessons fro IPv6 day, 2011
Lessons fro IPv6 day, 2011
Jon Warbrick
?
Lessons from IPv6 Day
Lessons from IPv6 DayLessons from IPv6 Day
Lessons from IPv6 Day
Jon Warbrick
?
Google Apps @ Cambridge - What we did
Google Apps @ Cambridge - What we didGoogle Apps @ Cambridge - What we did
Google Apps @ Cambridge - What we did
Jon Warbrick
?
(Why) Passwords don't work
(Why) Passwords don't work(Why) Passwords don't work
(Why) Passwords don't work
Jon Warbrick
?
Web Authenication with Shibboleth - a view from the Flat East
Web Authenication with Shibboleth - a view from the Flat EastWeb Authenication with Shibboleth - a view from the Flat East
Web Authenication with Shibboleth - a view from the Flat East
Jon Warbrick
?
Google Apps - SSO and Identity Management at the University of Cambridge
Google Apps - SSO and Identity Management at the University of CambridgeGoogle Apps - SSO and Identity Management at the University of Cambridge
Google Apps - SSO and Identity Management at the University of Cambridge
Jon Warbrick
?

Recently uploaded (20)

UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio WebUiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
DianaGray10
?
Innovative Web Design | Malachite Technologies
Innovative Web Design | Malachite TechnologiesInnovative Web Design | Malachite Technologies
Innovative Web Design | Malachite Technologies
malachitetechnologie1
?
Getting the Best of TrueDEM ¨C April News & Updates
Getting the Best of TrueDEM ¨C April News & UpdatesGetting the Best of TrueDEM ¨C April News & Updates
Getting the Best of TrueDEM ¨C April News & Updates
panagenda
?
How Telemedicine App Development is Revolutionizing Virtual Care.pptx
How Telemedicine App Development is Revolutionizing Virtual Care.pptxHow Telemedicine App Development is Revolutionizing Virtual Care.pptx
How Telemedicine App Development is Revolutionizing Virtual Care.pptx
Dash Technologies Inc
?
202408_JAWSPANKRATION_Introduction_of_Minaden.pdf
202408_JAWSPANKRATION_Introduction_of_Minaden.pdf202408_JAWSPANKRATION_Introduction_of_Minaden.pdf
202408_JAWSPANKRATION_Introduction_of_Minaden.pdf
NTTDOCOMO-ServiceInnovation
?
Benefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle CloudBenefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle Cloud
AstuteBusiness
?
Recruiting Tech: A Look at Why AI is Actually OG
Recruiting Tech: A Look at Why AI is Actually OGRecruiting Tech: A Look at Why AI is Actually OG
Recruiting Tech: A Look at Why AI is Actually OG
Matt Charney
?
San Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdfSan Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdf
Matt Doar
?
Build Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced FeaturesBuild Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced Features
V3cube
?
Building High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdfBuilding High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdf
Rafael Burity
?
Beyond the life of a CISO - Head of Trust at GDG Kathmandu Monthly Meetup
Beyond the life of a CISO -  Head of Trust at GDG Kathmandu Monthly MeetupBeyond the life of a CISO -  Head of Trust at GDG Kathmandu Monthly Meetup
Beyond the life of a CISO - Head of Trust at GDG Kathmandu Monthly Meetup
GDG Kathmandu
?
Network_Packet_Brokers_Presentation.pptx
Network_Packet_Brokers_Presentation.pptxNetwork_Packet_Brokers_Presentation.pptx
Network_Packet_Brokers_Presentation.pptx
Khushi Communications
?
Commit Conf 2025 Bitnami Charts with Kubescape
Commit Conf 2025 Bitnami Charts with KubescapeCommit Conf 2025 Bitnami Charts with Kubescape
Commit Conf 2025 Bitnami Charts with Kubescape
Alfredo Garc¨ªa Lavilla
?
Why Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdfWhy Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdf
anjelinajones6811
?
Columbia Weather Systems - Product Overview
Columbia Weather Systems - Product OverviewColumbia Weather Systems - Product Overview
Columbia Weather Systems - Product Overview
Columbia Weather Systems
?
AI in Talent Acquisition: Boosting Hiring
AI in Talent Acquisition: Boosting HiringAI in Talent Acquisition: Boosting Hiring
AI in Talent Acquisition: Boosting Hiring
Beyond Chiefs
?
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
Ivan Tang
?
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
DianaGray10
?
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
David Brossard
?
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-WorldAll-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
Safe Software
?
UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio WebUiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
UiPath NY AI Series: Session 4: UiPath AutoPilot for Developers using Studio Web
DianaGray10
?
Innovative Web Design | Malachite Technologies
Innovative Web Design | Malachite TechnologiesInnovative Web Design | Malachite Technologies
Innovative Web Design | Malachite Technologies
malachitetechnologie1
?
Getting the Best of TrueDEM ¨C April News & Updates
Getting the Best of TrueDEM ¨C April News & UpdatesGetting the Best of TrueDEM ¨C April News & Updates
Getting the Best of TrueDEM ¨C April News & Updates
panagenda
?
How Telemedicine App Development is Revolutionizing Virtual Care.pptx
How Telemedicine App Development is Revolutionizing Virtual Care.pptxHow Telemedicine App Development is Revolutionizing Virtual Care.pptx
How Telemedicine App Development is Revolutionizing Virtual Care.pptx
Dash Technologies Inc
?
Benefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle CloudBenefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle Cloud
AstuteBusiness
?
Recruiting Tech: A Look at Why AI is Actually OG
Recruiting Tech: A Look at Why AI is Actually OGRecruiting Tech: A Look at Why AI is Actually OG
Recruiting Tech: A Look at Why AI is Actually OG
Matt Charney
?
San Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdfSan Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdf
Matt Doar
?
Build Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced FeaturesBuild Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced Features
V3cube
?
Building High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdfBuilding High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdf
Rafael Burity
?
Beyond the life of a CISO - Head of Trust at GDG Kathmandu Monthly Meetup
Beyond the life of a CISO -  Head of Trust at GDG Kathmandu Monthly MeetupBeyond the life of a CISO -  Head of Trust at GDG Kathmandu Monthly Meetup
Beyond the life of a CISO - Head of Trust at GDG Kathmandu Monthly Meetup
GDG Kathmandu
?
Why Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdfWhy Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdf
anjelinajones6811
?
AI in Talent Acquisition: Boosting Hiring
AI in Talent Acquisition: Boosting HiringAI in Talent Acquisition: Boosting Hiring
AI in Talent Acquisition: Boosting Hiring
Beyond Chiefs
?
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
2025-04-05 - Block71 Event - The Landscape of GenAI and Ecosystem.pdf
Ivan Tang
?
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
DianaGray10
?
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
David Brossard
?
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-WorldAll-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-World
Safe Software
?

An introduction to Version Control Systems

Editor's Notes

  • #2: ...or Revision Control systems, Source Code Control systems, Software Configuration Management systems, or...\n\nThis talk was written by Jon, Tony and Ben even if only Jon and Tony are presenting it.\n
  • #3: Everything changes. Anyone recognise this way of tracking changes? It’s the ‘Save as...’ approach. Do you find it works well?\n
  • #4: Media Wiki, so the CS managed Wiki Service, so the CS Wiki, has quite sophisticated change tracking. Revisions. Comments. Diffs.\n
  • #5: Quite a lot of other software has built-in history tracking. Here are some examples.\n
  • #6: What do you typically get with something like this? What use is it?\n
  • #7: Lets define some terms. We are drifting into ‘traditional’ VCSs here and away from application-specific VCS support.\n
  • #8: The place where stuff gets stored. Typically looking like a directory tree. Might be a single local directory or on a central server. In the case of a ‘distributed’ VCS there might be lots of repositories but with support or transmitting and synchronising changes between them (the latter being deep magic).\n
  • #9: The act of taking a copy of something to work on. Typically only you see your subsequent changes until you take further action.\n
  • #10: In many systems you check out all (or a significant lump) of the repository. This is your private working copy, or working tree. You may need to refresh it to take account of changes made by others.\n
  • #11: The act of updating the repository with your changes. Once you’ve committed a change then others can see it. \n\nCommits are normally accompanied by a comment describing the changes, what they are intended to achieve, etc. Serve at least three purposes: make it easier to find a particular change; provide documentation to remind you what you did; provide documentation to others to tell them what you did.\n
  • #12: (for “difference”). It’s normally possible to ask to see the difference between different versions of something in a repository. Easy(ish) for text files - more challenging for things like images, videos (but see link)...\n\n[Many VCSs store revisions _as_ diffs (to save space), but that’s not directly relevant]\n
  • #13: Some VCSs let you ‘lock’ a file while you are working on it to stop any one else also making changes. Slows development, esp. when people forget! Modern systems rely instead on merging (see next).\n
  • #14: Modern systems let people work on the same file at the same time. When changes are checked in they systems try to merge them together. Providing they affect different parts of the file they can do this automatically - if not then human intervention is needed. Modern systems also need to do merging to support branching.\n
  • #15: Getting a bit advanced. Sometimes you want to work on a new version of something, while keeping the old version around and working on that too. E.g. maintaining version n of a software product while at the same time developing version n+1. Branches let you do this _and_ transfer changes made in one branch to another.\n
  • #16: "To a man with a hammer, everything looks like a nail."-Mark Twain. How to identify real VCS nails.\n
  • #17: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #18: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #19: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #20: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #21: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #22: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n
  • #23: Had to add sccs!\n\nGiven a liking for “free” (as in speech and/or beer), the highlighted products are probably of most use.\n