A Practical Introduction to Version Control Systems

Similar documents
Fundamentals of Git 1

Revision Control. An Introduction Using Git 1/15

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

AIS Grid School 2015

Version Control Systems

Part I Part 1 Version Control Systems (VCSs)

Part I Part 1 Version Control Systems (VCSs)

Part I Part 1 Version Control Systems (VCSs)

Version Control Systems

A BASIC UNDERSTANDING OF VERSION CONTROL

Version Control Systems

Part I Part 1 Version Control Systems (VCSs)

Part I Part 1 Version Control Systems (VCSs)

Version Control Systems (VCS)

Version Control Systems (Part 1)

Git Introduction CS 400. February 11, 2018

Version Control Systems: Overview

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

Computer Science Design I Version Control with Git

Version Control for Fun and Profit

Git - A brief overview

CSE 391 Lecture 9. Version control with Git

Introduction to Version Control

Revision Control. Software Engineering SS 2007

INET

Version Control. CSC207 Fall 2014

Version control with Git.

Push up your code next generation version control with (E)Git

Version Control Systems

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Laboratorio di Programmazione. Prof. Marco Bertini

GIT for companies Mark Struberg, INSO TU Vienna

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

Department of Computer Science College of Engineering Boise State University

Git for Version Control

Source Code Management wih git

Algorithm Engineering

COSC345 Software Engineering. Version Control

Chapter 3. Revision Control

Θερινό Σχολείο, Ιουλίου git. Αχιλλέας Πιπινέλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Software Architecture

Decentralized Version Control Systems

Source control with Subversion A user perspective

Programming with Haiku

Revision control systems (RCS) and. Subversion

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

Comparison of Software Configuration Management Tools

Using git to download and update BOUT++

Software Revision Control for MASS. Git Installation / Configuration / Use

February 2 nd Jean Parpaillon

How to be a git. Dominic Mitchell

CSE 390 Lecture 9. Version control and Subversion (svn)

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Distributed Version Control (with Git)

Configuration Management

Version Control Systems. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Version Control. Version Control

Introduction to Version Control

Version Control Systems

Version Control: Gitting Started

Git. (Why not CVS?... because Git.) Karel Zak Florian Festi Bart Trojanowski December 20, 2007

Software Development I

Practical C Programming

VSO. Configuration Management

Git for Subversion users

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

Basics of Git GitHub

Having Fun with Social Coding. Sean Handley. February 25, 2010

Version Control with GIT: an introduction

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

Introduction to distributed version control with git

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Project Management. Overview

Assembla & TortoiseSVN

Home Page. Title Page. Contents. Page 1 of 17. Version Control. Go Back. Ken Bloom. Full Screen. Linux User Group of Davis March 1, Close.

git the SCM system Jan-Simon Möller training.linuxfoundation.org

Tools for software development:

Human Version Control

Revision Control OSS Survey

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Version Control. Version Control. Human Version Control. Version Control Systems

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control?

Praktische Aspekte der Informatik

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Version Control with Git ME 461 Fall 2018

Versioning Systems. Tolu Oguntusin(too06u) 12th November, University of Nottingham

TDDC88 Lab 4 Software Configuration Management

Introduction to GIT. Jordi Blasco 14 Oct 2011

Common Configuration Management Tasks: How to Do Them with Subversion

Introduction to Git and Github

Software Revision Control for MASS. Git Basics, Best Practices

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

Git. Ľubomír Prda. IT4Innovations.

Managing Source Code With Subversion

Transcription:

A Practical Introduction to Version Control Systems A random CAKES(less) talk on a topic I hope others find useful! a.brampton@lancs.ac.uk 4th February 2009

Outline 1 What is Version Control Basic Principles Versioning Models 2 3

What is Version Control Basic Principles Versioning Models What can version control do for you? Backup your work Rollback changes The original time machine Collaborate with others Multiple users can share and edit documents Access documents online If your repository is online, you can easily access your files anywhere

The Repository What is Version Control Basic Principles Versioning Models Description Where all the files and directories are stored Stores the histories of all your files and directories Users read and write files to it

The Working Copy What is Version Control Basic Principles Versioning Models Description A local copy of the repository Where your changes are made before sending them to the repository Conceptually the same as a sandbox

Revisions What is Version Control Basic Principles Versioning Models Description A single snap shot in time of what the repository looked like Global or File based revisions

Problem of File Sharing What is Version Control Basic Principles Versioning Models

Lock-Modify-Unlock Solution What is Version Control Basic Principles Versioning Models

Copy-Modify-Merge Solution What is Version Control Basic Principles Versioning Models

Copy-Modify-Merge Solution What is Version Control Basic Principles Versioning Models

Types of Version Control What is Version Control Basic Principles Versioning Models Centralised Client-Server system Repository stored on a server e.g Subversion (SVN), Concurrent Versions System (CVS), Visual Source Safe, etc Decentralised Fully decentralised, no server Each user has a copy of the full repository e.g Git, BitKeeper, Mercurial, Monotone, SVK

Subversion (SVN) Began in 2000 as a replacement for CVS Used by, Apache Software Foundation, KDE, GNOME, FreeBSD, GCC, Python, Django, Ruby, Mono, SourceForge.net, etc. Centralised / Client-Server system Can be accessed via HTTP (using Webdav), A custom SVN protocol, or local filesystem Clients Simple command line ( http://subversion.tigris.org/ ) TortoiseSVN ( http://tortoisesvn.tigris.org/ ) RapidSVN ( http://rapidsvn.tigris.org/ )

Create a repository Typically done by a admin You need to either setup a HTTP server, or a SVN server But, luckily Steven Simpson has done a lot of the work for us: https://forge.comp.lancs.ac.uk/

Basic Create your working copy svn checkout https://forge.comp.lancs.ac.uk/svn-repos/cakes-test/ Add documents to the working copy svn add filename Commit your changes to the repository svn commit Update your working copy from the repository svn update

Advanced Show the differences you have made in your working copy svn diff Undo all changes in your working copy svn revert See a history of commits svn log See who is responsible for each line of a file svn blame

Git Started by Linus Torvalds in early April 2005, and was usable by mid-june 2005. I m an egotistical bastard, and I name all my projects after myself. First Linux, now git Used by, Linux kernel, Perl, Samba, X.org Server, Ruby on Rails, VLC, Wine, DragonFly BSD, etc. Fully Decentralised Can be accessed via HTTP, FTP, rsync, or a Git protocol Clients Simple command line ( http://git-scm.com/ ) TortoiseGit ( http://code.google.com/p/tortoisegit/ )

Create a repository Everyone has a local repository Create one from scratch git init Create one from an existing repository git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.

Basic Add document to your local repository git add filename or (for git to prompt you for each change) git add -p Commit your changes to your local repository git commit Show the differences you have made in your working copy See a history of commits git diff git log

Basic Update your working copy from another repository git pull or git pull url-to-another-repo Send your changes to another repository git push or git push url-to-another-repo

Thank you for listening. Any questions? A Practical Introduction to Version Control Systems A random CAKES(less) talk on a topic I hope others find useful! a.brampton@lancs.ac.uk 4th February 2009