Distributed Version Control Systems (or Version Control for Hipsters) Rob Gaston, web developer Farallon Geographics, Inc. SF Department of Technology.

Slides:



Advertisements
Similar presentations
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Advertisements

Software engineering tools for web development Jim Briggs 1CASE.
Me: Dr James Hetherington -- UCL Research Software Development Team -- blogs.ucl.ac.uk/research-software-development/blogs.ucl.ac.uk/research-software-development/
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
Juan Carlos Flores 10/20/2011. Outline Introduction Centralized Revision Control Systems Subversion Overview Distributed Revision Control Systems Network.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version control Using Git 1Version control, using Git.
Version control with Github August 26th, 2014 Daniel Schreij VU Cognitive Psychology departement
Introduction to Version Control
Why you should be using Version Control. Matt Krass Electrical/Software Engineer November 22, 2014.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Git – versioning and managing your software L. Grewe.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Version control Using Git Version control, using Git1.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
2010. The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or.
Version Control. How do you share code? Discussion.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
Lokesh Puppala. Introduction  Git - Distributed version control system  Initiated by Linus Torvalds  Strongly influenced by Linux kernel development.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Version Control.
Version Control Systems with Subversion (SVN) and Tortoise.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Distributed Version Control System
Mercurial – Revision Control System. Overview of Revision Control Systems (IBM) Rational ClearQuest Perforce Centralized systems – CVS, Subversion/SVN.
Version Control with SVN Images from TortoiseSVN documentation
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
Version Control System Lisa Palathingal 03/04/2015.
GIT.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
CS 160 and CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
An Introduction to Git David Johndrow COMP 490 – Senior Design & Development 2/11/16.
INFSO-RI Enabling Grids for E-sciencE Distributed Version Control Systems Ákos Frohner CERN, IT-DM.
Process changes: Internal processes of CASA, external contributions, release schedule Mark G. Rawlings, CASA Build & Test Lead NRAO, Charlottesville Acknowledgements:
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
MyUWO Portal Updates By: Emily Al Bulushi Richard Sheppard Steven Beshensky.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
GitHub A web-based Git repository hosting service.
Information Systems and Network Engineering Laboratory II
Git and GitHub primer.
LECTURE 2: Software Configuration Management
Version Control.
Code Management Releases
Version Control overview
Version control, using Git
Development and Deployment
Storing, Sending, and Tracking Files Recitation 2
Version Control System
Distributed Version Control with git
LECTURE 3: Software Configuration Management
Getting Started with Git and Bitbucket
Part 1: Editing and Publishing Files
Version Control System - Git
Version Control with Git
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
Version Control with Git
Git GitHub.
Introduction to The Git Version Control System
Presentation transcript:

Distributed Version Control Systems (or Version Control for Hipsters) Rob Gaston, web developer Farallon Geographics, Inc. SF Department of Technology Developer Forum 11/13/2012

Definition of DVCS "Talent borrows, genius steals." - Oscar Wilde "In computer programming, a distributed version control system (DVCS) keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network." - Wikipedia

Why use DVCS? Reduces the need for branching in large, distributed projects Allows use of version control when disconnected from network Allows users to version their own work before publishing to the remote repository Great for Open Source projects as it promotes using version control while still providing a way to control the centralized release version of your project

What's different in DVCS? All 'working copies' are actually repositories themselves, with all the same capabilities as the remote repository on the server (in this way, they behave much like a branch in traditional VCS) 'commit' operations are issued to the users local repository, resulting in a revision on their local repository Work is published to the remote repository through a "push" operation If revisions have been published to the server prior to the "push" operation, the user must do a "pull" operation to get these revisions and then merge these with their local changes This might sound like a lot of merging… and it is, but merge operations are much simpler in DVCS than they are in traditional VCS

Popular DVCS technologies Git (Linus Torvalds) Mercurial (hg) See also: Fossil, DCVS

Using DVCS (Hg) TortoiseHg Workbench demo Using multiple remote repositories Fixing mistakes: hg rollback vs. hg revert vs. hg backout "hg rollback" removes the most recent local revision. A rollback only works on revisions that have not been pushed to a remote server. "hg revert" undoes any pending uncommitted changes (essentially the same as svn revert). "hg backout" effectively "undoes" any revision. This shows up as a new local revision which then must be pushed to the remote server. "hg backout" operations can be issued against any revision (does not have to be the most recent)

Client Software TortoiseHg GitHub Atlassian SourceTree

Hosting GitHub Assembla JIRA

That’s it! Questions? Thanks for listening! Rob Gaston, web developer Farallon Geographics, Inc. PS: If you really want to be hip (and let’s face it, you do), use Sublime Text 2!