2010. The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or.

Slides:



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

Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
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.
LECTURE 14 OCT 22, 2010 Git, in graphic form. Change tracking basics.
Introduction to git Alan Orth Nairobi, Kenya September, 2010 version control for serious hackers ;)
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
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 Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Programming in Teams And how to manage your code.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Introduction to Version Control
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.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Version control Using Git Version control, using Git1.
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.
…using Git/Tortoise Git
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.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Introduction to Version Control with Git CSC/ECE 517, Fall 2014 A joint project of the CSC/ECE 517 staff, including Titus Barik, Gaurav Tungatkar, Govind.
Mercurial – Revision Control System. Overview of Revision Control Systems (IBM) Rational ClearQuest Perforce Centralized systems – CVS, Subversion/SVN.
Git overview for RoboCup Andre Pool, September 2015.
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.
Intro to Git presented by Brian K. Vagnini Hosted by.
Version Control System
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Database & Information Systems Group University of Basel DBIS Group Talk Michael Springmann Distributed Source Code Management in Mercurial.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Collaborative Git An introduction to Git with others
GitHub A web-based Git repository hosting service.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
Version Control Systems
Git and GitHub primer.
11 Version control (part 2)
Source Control Dr. Scott Schaefer.
Version Control overview
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control System using Git
Mercurial & TorToise-HG
Version Control System
Akshay Narayan git up to speed with RCS Akshay Narayan
Getting Started with Git and Bitbucket
Subversion Basics Guide
Version Control System - Git
Version control with Git
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Presentation transcript:

2010

The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or

The Subversion Dilemma Weeks without Version Control

Jens Schumacher – Atlassian What is DVCS and why it will change the way we work 2010

Overview 1. Mercurial vs. Subversion 2. Basic concepts 3. Use cases

Subversion vs Mercurial

Merging

Subversion vs Mercurial Branching

Subversion vs Mercurial Repository Access

Subversion vs Mercurial Performance

Subversion vs Mercurial Sharing

Subversion vs Mercurial Tool Support

Subversion vs Mercurial Authentication

Subversion vs Mercurial Check Out

Subversion vs Mercurial

Overview 1. Mercurial vs. Subversion 2. Basic concepts 3. Use cases

Repository Architecture

Subversion

Mercurial

Subversion Revisions Subversion is always linear

Mercurial Changesets head Each Changeset can have multiple children

Mercurial head

Mercurial Pull Merge

Mercurial "hg commit" adds a new node "hg push" and "hg pull" transfer nodes in the graph between two repositories "hg merge" merge changes in a repository

Branching in Mercurial Forks Named Branches Bookmarks Anonymous Branches

Forks

Complete Isolation Very easy to discard Forking is slower DisadvantagesAdvantages 12

Forks When to use Forks When you don’t have commit access To experiment For a build repository

Named Branches

Branch Metadata Faster than Forking Branch Metadata Closing a Branch (fixed in 1.2) DisadvantagesAdvantages

Named Branches When to use Named Branches Working in a team on a feature

Bookmarks

Lightweight Can be deleted Similar to git Local (fixed in 1.6) Possible loss of context DisadvantagesAdvantages

Bookmarks When to use Bookmarks Working in a team on a feature If you like to way git does branching If you use Mercurial 1.6

Anonymous Branches

Fast No name required No closing required No description Changeset # required (lookup with hg log) DisadvantagesAdvantages

Anonymous Branches When to use Anonymous Branches For quick & small fixes

Overview 1. Mercurial vs. Subversion 2. Basic concepts 3. Use cases

BitBucket Mercurial code hosting Free for 5 users Unlimited public collaborators Unlimited disk space

Getting Started

The Basics hg init create a new repositoryhg commit save your changes in the current repositoryhg log see all changes in your repositoryhg pull pull all changes from another repository into yourshg push push your changes into another repositoryhg merge join different lines of history hg update update the repository's working directoryhg help repositoryrectoryhg help <c

Separate Features Use Case Work on several features in parallel

Separate Features $ hg clone project feature$ cd feature$ (do some changes and commits) Clone

Separate Features $ cd../project$ hg incoming../feature Incoming Use hg incoming --patch to view the diffs

Separate Features $ hg pull../feature Pull The history of feature one is now in your project. However, changes are not yet visible and only stored in the.hg directory

Separate Features $ hg merge Merge $ hg commit(enter commit message) Commit

Separate Features Changesets

Collaborative Feature Development Use Case Using Mercurial to help coordinate the coding

Collaborative Feature Development $ hg branch feature(do some changes)$ hg commit(write commit message) Create a branch $ hg update feature(do some changes)$ hg commit(write commit message)

Collaborative Feature Development $ hg update default$ hg merge feature$ hg commit(write commit message) Merge the named branch Named branches stay in history as permanent records after you finished your work.

Collaborative Feature Development Changesets

Tagging Revisions Use Case Release a plugin

Tagging Revisions $ hg tag -r 8 v0.1 Add a tag $ hg tags See all tags $ hg update v0.1 Update to a tagged revision

Tagging Revisions Tags

Overview 1. Mercurial vs. Subversion 2. Basic concepts 3. Use cases

Try BitBucket bitbucket.org

Links branching-in-mercurial branching-in-mercurial

Thank you!