SlideShare a Scribd company logo
A brief introduction to
version control systems
Tim Staley
Astronomy Group Monday Seminar
Southampton, November 2013
WWW: timstaley.co.uk
The problem No backup Manual copies Centralised VCS Distributed VCS
Aims
Help identify problem that can be
solved.
Introduce basic concepts of version
control.
Explain why various technologies
exist, and which you should choose.
The problem No backup Manual copies Centralised VCS Distributed VCS
The problem No backup Manual copies Centralised VCS Distributed VCS
When you need version
control
Complex documents, built up over
time.
Multiple collaborators (or even just
multiple machines).
Multiple versions which ‘co-evolve.’
Reproducibility (‘snapshots’).
The problem No backup Manual copies Centralised VCS Distributed VCS
Four Evolutionary Stages
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage 0: Not backing up
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage 0: Not backing up
DON’T DO THIS
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage 1: Manual copies
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage 1: Manual copies
Flaws:
Manual = fallible.
Backup: Copies of copies.
Labelling.
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage 1: Manual copies
Flaws:
Manual = fallible.
Backup: Copies of copies.
Labelling.
We need metadata - datestamps,
annotations, attribution.
And tools - make this stuff quick and
easy!
The problem No backup Manual copies Centralised VCS Distributed VCS
Aside: ‘Cloudy’ technologies
Trade off — convenience vs control.
Good for:
Small docs, frequently updated across
multiple locations (e.g. to-do list).
Basic backups of items unlikely to
evolve (photos, etc).
The problem No backup Manual copies Centralised VCS Distributed VCS
Aside: ‘Cloudy’ technologies
Problems:
Versioning is all automated - can’t
choose sensible ‘checkpoints’ to mark
out.
Collaboration is still broken, unless
you’re working on very simple docs.
The problem No backup Manual copies Centralised VCS Distributed VCS
Aside: ‘Cloudy’ technologies
Problems:
Versioning is all automated - can’t
choose sensible ‘checkpoints’ to mark
out.
Collaboration is still broken, unless
you’re working on very simple docs.
NEED MORE METADATA
The problem No backup Manual copies Centralised VCS Distributed VCS
Stage Two
The problem No backup Manual copies Centralised VCS Distributed VCS
Centralised version control
e.g.
‘Concurrent Versions System’ (CVS,
now defunct).
‘Subversion’ (SVN).
The problem No backup Manual copies Centralised VCS Distributed VCS
Basic concepts, 1
Record an annotated history of change
sets.
Trunk, branch
Parents, ancestors
The problem No backup Manual copies Centralised VCS Distributed VCS
Basic concepts, 2
Centralized ⇔ Master copy
Repository
Checkout
Commit / Revision
The problem No backup Manual copies Centralised VCS Distributed VCS
Basic concepts, 3
Merging
In simple cases, merges are automatic!
Tree-records allows us to build the new
combined version.
The problem No backup Manual copies Centralised VCS Distributed VCS
Basic concepts, 3
Manual merging: When conflicts exist,
we have the info and tools to manually
resolve them.
The problem No backup Manual copies Centralised VCS Distributed VCS
Distributed VCS
1986 – early 2000’s: Why would you
make this any more complex? This works.
The problem No backup Manual copies Centralised VCS Distributed VCS
Distributed VCS
1986 – early 2000’s: Why would you
make this any more complex? This works.
INTERWEBS
The problem No backup Manual copies Centralised VCS Distributed VCS
Distributed VCS
1986 – early 2000’s: Why would you
make this any more complex? This works.
INTERWEBS
(See e.g. visualised history of Python,
https://www.youtube.com/watch?v=
cNBtDstOTmA)
The problem No backup Manual copies Centralised VCS Distributed VCS
Centralised doesn’t scale
Many collaborators.
Cannot check-in half-finished work to
master.
Cannot keep track of a branch for
every collaborator.
The problem No backup Manual copies Centralised VCS Distributed VCS
Centralised doesn’t scale
Many collaborators.
Cannot check-in half-finished work to
master.
Cannot keep track of a branch for
every collaborator.
Resort back to hybrid of central copy
under version control, with many
local, manual backups for
intermediate work.
The problem No backup Manual copies Centralised VCS Distributed VCS
The distributed model
Stage 3: Distribute!
Everyone has their own mirror, or
clone of the repository.
Changes are distributed via pushes
and pulls.
The problem No backup Manual copies Centralised VCS Distributed VCS
Distribute!
Benefits for you:
More flexible. Allows different
workflows and collaborative behaviour
etc.
Can commit offline, sync later.
Talk to me later if you want the details.
The problem No backup Manual copies Centralised VCS Distributed VCS
So which should I use?
The problem No backup Manual copies Centralised VCS Distributed VCS
So which should I use?
At this stage, git and mercurial are
functionally equivalent — but git has won
the majority mindshare, therefore: better
support, better chance of collaborators
using same system, etc.
The problem No backup Manual copies Centralised VCS Distributed VCS
Summary
Version control helps with:
Backups
Reproducibility
Comparing arbitrary historical versions.
Maintaining multiple live versions.
Lots of free services and material
online to help you out.
Bit of a learning curve at first - but
payoff is large in long-run. (And now
you have a headstart!)
The problem No backup Manual copies Centralised VCS Distributed VCS
Advanced Reading
To start, google ‘git intro’, etc. Then. . .
Git for Computer Scientists
http://eagain.net/articles/
git-for-computer-scientists/
Understanding Git Conceptually
http://www.sbf5.com/~cduan/
technical/git/
Understanding the Git Workflow
https://sandofsky.com/blog/
git-workflow.html
Ad

More Related Content

What's hot (20)

Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
Jeremy Coates
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
Suman Mukherjee
 
Version control
Version controlVersion control
Version control
visual28
 
Introduction to git & GitHub
Introduction to git & GitHubIntroduction to git & GitHub
Introduction to git & GitHub
Poornachandrakashi
 
Version control system
Version control systemVersion control system
Version control system
Aryman Gautam
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentation
AyanaRukasar
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
Rupesh Kumar
 
Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
Jonathan Lawerh
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
Lee Hanxue
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
Senthilkumar Gopal
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
Panagiotis Papadopoulos
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
Md. Ahsan Habib Nayan
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and Git
Daniel Wieth
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
Jeremy Coates
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 
Version control
Version controlVersion control
Version control
visual28
 
Version control system
Version control systemVersion control system
Version control system
Aryman Gautam
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentation
AyanaRukasar
 
Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
Lee Hanxue
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and Git
Daniel Wieth
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 

Viewers also liked (20)

What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
Leonid Mamchenkov
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
Joel Krebs
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
KMS Technology
 
Git in 5 Minutes
Git in 5 MinutesGit in 5 Minutes
Git in 5 Minutes
Robert Dumas
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
Craig Smith
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
Philip Johnson
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Randal Schwartz
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
PHPBelgium
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
Prem Aseem Jain
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
Rohit Arora
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
Version Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Version Control Systems - ArabNet Beirut 2014 - Dani ArnaoutVersion Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Version Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Dani Arnaout
 
An introduction to Version Control Systems
An introduction to Version Control SystemsAn introduction to Version Control Systems
An introduction to Version Control Systems
Jon Warbrick
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
ceardach
 
Introduction to Version Control System for Windows
Introduction to Version Control System for WindowsIntroduction to Version Control System for Windows
Introduction to Version Control System for Windows
Peter Chang
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
Ted Naleid
 
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Atlassian
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
Michelangelo van Dam
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
Leonid Mamchenkov
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
Joel Krebs
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
KMS Technology
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
Craig Smith
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
Philip Johnson
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
PHPBelgium
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
Rohit Arora
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
Version Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Version Control Systems - ArabNet Beirut 2014 - Dani ArnaoutVersion Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Version Control Systems - ArabNet Beirut 2014 - Dani Arnaout
Dani Arnaout
 
An introduction to Version Control Systems
An introduction to Version Control SystemsAn introduction to Version Control Systems
An introduction to Version Control Systems
Jon Warbrick
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
ceardach
 
Introduction to Version Control System for Windows
Introduction to Version Control System for WindowsIntroduction to Version Control System for Windows
Introduction to Version Control System for Windows
Peter Chang
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
Ted Naleid
 
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010
Atlassian
 
Ad

Similar to A brief introduction to version control systems (20)

Top Hyper-V Implementation Issues
Top Hyper-V Implementation IssuesTop Hyper-V Implementation Issues
Top Hyper-V Implementation Issues
Aidan Finn
 
Cvs
CvsCvs
Cvs
Gestio Organització Comunicació S.A.
 
Implementing dr w. hyper v clustering
Implementing dr w. hyper v clusteringImplementing dr w. hyper v clustering
Implementing dr w. hyper v clustering
Concentrated Technology
 
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Michael Pirker
 
ESXpert strategies VMware vSphere
ESXpert strategies VMware vSphereESXpert strategies VMware vSphere
ESXpert strategies VMware vSphere
Concentrated Technology
 
Version Control System
Version Control SystemVersion Control System
Version Control System
TechAhead
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
Gilad Garon
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
Stuart Colville
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
Ashraf Fouad
 
Hyper v r2 deep dive
Hyper v r2 deep diveHyper v r2 deep dive
Hyper v r2 deep dive
Concentrated Technology
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
Nowell Strite
 
Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008
Carter Shanklin
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
Angel Ruiz
 
Wise09
Wise09Wise09
Wise09
Pascal Molli
 
Maven 3.0 at Øredev
Maven 3.0 at ØredevMaven 3.0 at Øredev
Maven 3.0 at Øredev
Matthew McCullough
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
Priyabrata Sahu
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
kalyansiri
 
Version Controlling
Version ControllingVersion Controlling
Version Controlling
Vaidik Kapoor
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
Albertz Ace-Red
 
Git branching model
Git branching modelGit branching model
Git branching model
Gian Maria Ricci
 
Top Hyper-V Implementation Issues
Top Hyper-V Implementation IssuesTop Hyper-V Implementation Issues
Top Hyper-V Implementation Issues
Aidan Finn
 
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Analyze a SVC, STORWIZE metro/ global mirror performance problem-v58-20150818...
Michael Pirker
 
Version Control System
Version Control SystemVersion Control System
Version Control System
TechAhead
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
Gilad Garon
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
Stuart Colville
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
Ashraf Fouad
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
Nowell Strite
 
Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008
Carter Shanklin
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
Angel Ruiz
 
Ad

More from Tim Staley (9)

Which transient when? - A utility function for transient follow-up scheduling
Which transient when? - A utility function for transient follow-up schedulingWhich transient when? - A utility function for transient follow-up scheduling
Which transient when? - A utility function for transient follow-up scheduling
Tim Staley
 
How to build a TraP: An image-plane transient-discovery tool
How to build a TraP: An image-plane transient-discovery toolHow to build a TraP: An image-plane transient-discovery tool
How to build a TraP: An image-plane transient-discovery tool
Tim Staley
 
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutesFrom gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
Tim Staley
 
Tunable algorithms for transient follow-up
Tunable algorithms for transient follow-upTunable algorithms for transient follow-up
Tunable algorithms for transient follow-up
Tim Staley
 
Training your astronomy robots to work as a team
Training your astronomy robots to work as a teamTraining your astronomy robots to work as a team
Training your astronomy robots to work as a team
Tim Staley
 
A user's guide to lucky imaging
A user's guide to lucky imagingA user's guide to lucky imaging
A user's guide to lucky imaging
Tim Staley
 
Fast radio follow-up
Fast radio follow-upFast radio follow-up
Fast radio follow-up
Tim Staley
 
Lucky imaging - Life in the visible after HST
Lucky imaging - Life in the visible after HSTLucky imaging - Life in the visible after HST
Lucky imaging - Life in the visible after HST
Tim Staley
 
Fast radio follow-up of GRBs
Fast radio follow-up of GRBsFast radio follow-up of GRBs
Fast radio follow-up of GRBs
Tim Staley
 
Which transient when? - A utility function for transient follow-up scheduling
Which transient when? - A utility function for transient follow-up schedulingWhich transient when? - A utility function for transient follow-up scheduling
Which transient when? - A utility function for transient follow-up scheduling
Tim Staley
 
How to build a TraP: An image-plane transient-discovery tool
How to build a TraP: An image-plane transient-discovery toolHow to build a TraP: An image-plane transient-discovery tool
How to build a TraP: An image-plane transient-discovery tool
Tim Staley
 
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutesFrom gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
From gamma-ray to radio: Multi-wavelength follow-up in the first five minutes
Tim Staley
 
Tunable algorithms for transient follow-up
Tunable algorithms for transient follow-upTunable algorithms for transient follow-up
Tunable algorithms for transient follow-up
Tim Staley
 
Training your astronomy robots to work as a team
Training your astronomy robots to work as a teamTraining your astronomy robots to work as a team
Training your astronomy robots to work as a team
Tim Staley
 
A user's guide to lucky imaging
A user's guide to lucky imagingA user's guide to lucky imaging
A user's guide to lucky imaging
Tim Staley
 
Fast radio follow-up
Fast radio follow-upFast radio follow-up
Fast radio follow-up
Tim Staley
 
Lucky imaging - Life in the visible after HST
Lucky imaging - Life in the visible after HSTLucky imaging - Life in the visible after HST
Lucky imaging - Life in the visible after HST
Tim Staley
 
Fast radio follow-up of GRBs
Fast radio follow-up of GRBsFast radio follow-up of GRBs
Fast radio follow-up of GRBs
Tim Staley
 

Recently uploaded (20)

How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Mastering OOP: Understanding the Four Core Pillars
Mastering OOP: Understanding the Four Core PillarsMastering OOP: Understanding the Four Core Pillars
Mastering OOP: Understanding the Four Core Pillars
Marcel David
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Agentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM modelsAgentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM models
Manish Chopra
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Shift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software DevelopmentShift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software Development
SathyaShankar6
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Xforce Keygen 64-bit AutoCAD 2025 Crack
Xforce Keygen 64-bit AutoCAD 2025  CrackXforce Keygen 64-bit AutoCAD 2025  Crack
Xforce Keygen 64-bit AutoCAD 2025 Crack
usmanhidray
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Mastering OOP: Understanding the Four Core Pillars
Mastering OOP: Understanding the Four Core PillarsMastering OOP: Understanding the Four Core Pillars
Mastering OOP: Understanding the Four Core Pillars
Marcel David
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Agentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM modelsAgentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM models
Manish Chopra
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Shift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software DevelopmentShift Left using Lean for Agile Software Development
Shift Left using Lean for Agile Software Development
SathyaShankar6
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Xforce Keygen 64-bit AutoCAD 2025 Crack
Xforce Keygen 64-bit AutoCAD 2025  CrackXforce Keygen 64-bit AutoCAD 2025  Crack
Xforce Keygen 64-bit AutoCAD 2025 Crack
usmanhidray
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 

A brief introduction to version control systems

  • 1. A brief introduction to version control systems Tim Staley Astronomy Group Monday Seminar Southampton, November 2013 WWW: timstaley.co.uk
  • 2. The problem No backup Manual copies Centralised VCS Distributed VCS Aims Help identify problem that can be solved. Introduce basic concepts of version control. Explain why various technologies exist, and which you should choose.
  • 3. The problem No backup Manual copies Centralised VCS Distributed VCS
  • 4. The problem No backup Manual copies Centralised VCS Distributed VCS When you need version control Complex documents, built up over time. Multiple collaborators (or even just multiple machines). Multiple versions which ‘co-evolve.’ Reproducibility (‘snapshots’).
  • 5. The problem No backup Manual copies Centralised VCS Distributed VCS Four Evolutionary Stages
  • 6. The problem No backup Manual copies Centralised VCS Distributed VCS Stage 0: Not backing up
  • 7. The problem No backup Manual copies Centralised VCS Distributed VCS Stage 0: Not backing up DON’T DO THIS
  • 8. The problem No backup Manual copies Centralised VCS Distributed VCS Stage 1: Manual copies
  • 9. The problem No backup Manual copies Centralised VCS Distributed VCS Stage 1: Manual copies Flaws: Manual = fallible. Backup: Copies of copies. Labelling.
  • 10. The problem No backup Manual copies Centralised VCS Distributed VCS Stage 1: Manual copies Flaws: Manual = fallible. Backup: Copies of copies. Labelling. We need metadata - datestamps, annotations, attribution. And tools - make this stuff quick and easy!
  • 11. The problem No backup Manual copies Centralised VCS Distributed VCS Aside: ‘Cloudy’ technologies Trade off — convenience vs control. Good for: Small docs, frequently updated across multiple locations (e.g. to-do list). Basic backups of items unlikely to evolve (photos, etc).
  • 12. The problem No backup Manual copies Centralised VCS Distributed VCS Aside: ‘Cloudy’ technologies Problems: Versioning is all automated - can’t choose sensible ‘checkpoints’ to mark out. Collaboration is still broken, unless you’re working on very simple docs.
  • 13. The problem No backup Manual copies Centralised VCS Distributed VCS Aside: ‘Cloudy’ technologies Problems: Versioning is all automated - can’t choose sensible ‘checkpoints’ to mark out. Collaboration is still broken, unless you’re working on very simple docs. NEED MORE METADATA
  • 14. The problem No backup Manual copies Centralised VCS Distributed VCS Stage Two
  • 15. The problem No backup Manual copies Centralised VCS Distributed VCS Centralised version control e.g. ‘Concurrent Versions System’ (CVS, now defunct). ‘Subversion’ (SVN).
  • 16. The problem No backup Manual copies Centralised VCS Distributed VCS Basic concepts, 1 Record an annotated history of change sets. Trunk, branch Parents, ancestors
  • 17. The problem No backup Manual copies Centralised VCS Distributed VCS Basic concepts, 2 Centralized ⇔ Master copy Repository Checkout Commit / Revision
  • 18. The problem No backup Manual copies Centralised VCS Distributed VCS Basic concepts, 3 Merging In simple cases, merges are automatic! Tree-records allows us to build the new combined version.
  • 19. The problem No backup Manual copies Centralised VCS Distributed VCS Basic concepts, 3 Manual merging: When conflicts exist, we have the info and tools to manually resolve them.
  • 20. The problem No backup Manual copies Centralised VCS Distributed VCS Distributed VCS 1986 – early 2000’s: Why would you make this any more complex? This works.
  • 21. The problem No backup Manual copies Centralised VCS Distributed VCS Distributed VCS 1986 – early 2000’s: Why would you make this any more complex? This works. INTERWEBS
  • 22. The problem No backup Manual copies Centralised VCS Distributed VCS Distributed VCS 1986 – early 2000’s: Why would you make this any more complex? This works. INTERWEBS (See e.g. visualised history of Python, https://www.youtube.com/watch?v= cNBtDstOTmA)
  • 23. The problem No backup Manual copies Centralised VCS Distributed VCS Centralised doesn’t scale Many collaborators. Cannot check-in half-finished work to master. Cannot keep track of a branch for every collaborator.
  • 24. The problem No backup Manual copies Centralised VCS Distributed VCS Centralised doesn’t scale Many collaborators. Cannot check-in half-finished work to master. Cannot keep track of a branch for every collaborator. Resort back to hybrid of central copy under version control, with many local, manual backups for intermediate work.
  • 25. The problem No backup Manual copies Centralised VCS Distributed VCS The distributed model Stage 3: Distribute! Everyone has their own mirror, or clone of the repository. Changes are distributed via pushes and pulls.
  • 26. The problem No backup Manual copies Centralised VCS Distributed VCS Distribute! Benefits for you: More flexible. Allows different workflows and collaborative behaviour etc. Can commit offline, sync later. Talk to me later if you want the details.
  • 27. The problem No backup Manual copies Centralised VCS Distributed VCS So which should I use?
  • 28. The problem No backup Manual copies Centralised VCS Distributed VCS So which should I use? At this stage, git and mercurial are functionally equivalent — but git has won the majority mindshare, therefore: better support, better chance of collaborators using same system, etc.
  • 29. The problem No backup Manual copies Centralised VCS Distributed VCS Summary Version control helps with: Backups Reproducibility Comparing arbitrary historical versions. Maintaining multiple live versions. Lots of free services and material online to help you out. Bit of a learning curve at first - but payoff is large in long-run. (And now you have a headstart!)
  • 30. The problem No backup Manual copies Centralised VCS Distributed VCS Advanced Reading To start, google ‘git intro’, etc. Then. . . Git for Computer Scientists http://eagain.net/articles/ git-for-computer-scientists/ Understanding Git Conceptually http://www.sbf5.com/~cduan/ technical/git/ Understanding the Git Workflow https://sandofsky.com/blog/ git-workflow.html