SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and JenkinsAn Nguyen
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CIColCh
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & DockerJoerg Henning
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching modelPavlo Hodysh
 
Continuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseContinuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseAidas Dragūnas
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model abodeltae
 
Version control
Version controlVersion control
Version controlvisual28
 

Was ist angesagt? (20)

Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Git flow
Git flowGit flow
Git flow
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Git basics
Git basicsGit basics
Git basics
 
Git
GitGit
Git
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Git
GitGit
Git
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Continuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseContinuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With Liquibase
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
 
Version control
Version controlVersion control
Version control
 

Andere mochten auch

Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlJeremy Coates
 
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 gitJoel Krebs
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control SystemKMS Technology
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & GitCraig 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 ManagementPhilip Johnson
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVNPHPBelgium
 
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 guideRohit 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 GitGeoff 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 ArnaoutDani Arnaout
 
An introduction to Version Control Systems
An introduction to Version Control SystemsAn introduction to Version Control Systems
An introduction to Version Control SystemsJon Warbrick
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Controlceardach
 
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 WindowsPeter Chang
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialTed 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 2010Atlassian
 

Andere mochten auch (20)

Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
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?
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
Git in 5 Minutes
Git in 5 MinutesGit in 5 Minutes
Git in 5 Minutes
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
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
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
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
 
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
 
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
 
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
 
An introduction to Version Control Systems
An introduction to Version Control SystemsAn introduction to Version Control Systems
An introduction to Version Control Systems
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
 
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
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
 
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
 

Ähnlich wie A brief introduction to version control systems

Top Hyper-V Implementation Issues
Top Hyper-V Implementation IssuesTop Hyper-V Implementation Issues
Top Hyper-V Implementation IssuesAidan 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 SystemTechAhead
 
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 systemGilad Garon
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with BazaarStuart Colville
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version ControlNowell Strite
 
Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008Carter Shanklin
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 

Ähnlich wie 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
 
Cvs
CvsCvs
Cvs
 
Implementing dr w. hyper v clustering
Implementing dr w. hyper v clusteringImplementing dr w. hyper v clustering
Implementing dr w. hyper v clustering
 
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...
 
ESXpert strategies VMware vSphere
ESXpert strategies VMware vSphereESXpert strategies VMware vSphere
ESXpert strategies VMware vSphere
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
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
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Hyper v r2 deep dive
Hyper v r2 deep diveHyper v r2 deep dive
Hyper v r2 deep dive
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
 
Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008Managing VMware with PowerShell - VMworld 2008
Managing VMware with PowerShell - VMworld 2008
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
Wise09
Wise09Wise09
Wise09
 
Maven 3.0 at Øredev
Maven 3.0 at ØredevMaven 3.0 at Øredev
Maven 3.0 at Øredev
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Version Controlling
Version ControllingVersion Controlling
Version Controlling
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Git branching model
Git branching modelGit branching model
Git branching model
 

Mehr von 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 schedulingTim 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 toolTim 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 minutesTim Staley
 
Tunable algorithms for transient follow-up
Tunable algorithms for transient follow-upTunable algorithms for transient follow-up
Tunable algorithms for transient follow-upTim 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 teamTim 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 imagingTim Staley
 
Fast radio follow-up
Fast radio follow-upFast radio follow-up
Fast radio follow-upTim 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 HSTTim Staley
 
Fast radio follow-up of GRBs
Fast radio follow-up of GRBsFast radio follow-up of GRBs
Fast radio follow-up of GRBsTim Staley
 

Mehr von 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
 
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
 
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
 
Tunable algorithms for transient follow-up
Tunable algorithms for transient follow-upTunable algorithms for transient follow-up
Tunable algorithms for transient follow-up
 
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
 
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
 
Fast radio follow-up
Fast radio follow-upFast radio follow-up
Fast radio follow-up
 
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
 
Fast radio follow-up of GRBs
Fast radio follow-up of GRBsFast radio follow-up of GRBs
Fast radio follow-up of GRBs
 

Kürzlich hochgeladen

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

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