Version control Michael Tsai 2012/4/10. Reference guide-to-version-control/

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

TortoiseSVN By Group 1 Team B. Installing TortoiseSVN.
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
0 - 0.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
Addition Facts
SPM5 Tutorials by the Wellcome Department of Imaging Neuroscience
1 Introduction to RefWorks Martin Hodgson Information specialist (Humanities) Tel:
Waste Management External Supplier User Guide SciQuest USA, Inc 5433 Westheimer Ste 925 Houston, TX
©2007 First Wave Consulting, LLC A better way to do business. Period This is definitely NOT your father’s standard operating procedure.
FreelineUSA, Inc. Saving and Restoring Phone Books FL-USA 800 R
Presented by Douglas Greer Creating and Maintaining Business Objects Universes.
Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Addition 1’s to 20.
25 seconds left…...
Test B, 100 Subtraction Facts
Week 1.
New Rubrics? Create Assignment and Project Templates and Send the Assignments in Tk20 Must do before you can use updated rubrics Theresa Dorn.
 Please sit next to your partner.  If you don’t have a partner, please find one now.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Version Control System (Sub)Version Control (SVN).
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.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Version Control and Subversion Chris Coakley. Outline What is Version Control? Why use it? Using Subversion (SVN)
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
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.
Source Code Management with CVS Kurt Wiersma December 2004.
The Design Workshop Introduction to Version Control 1.
Revision Control and Issue Tracking Andrew Watkins.
Version Control with Subversion Quick Reference of Subversion.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
1 Brief Introduction to Revision Control Ric Holt.
Version Control Reducing risk with version control Jon Austin
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.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion
11 Version control (part 2)
SVN intro (review).
LECTURE 2: Software Configuration Management
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion (SVN)
Development and Deployment
Concurrent Version Control
Version Control System
LECTURE 3: Software Configuration Management
Prof. Hilfinger CS164 Lecture 4
Systems Analysis and Design I
Presentation transcript:

Version control Michael Tsai 2012/4/10

Reference guide-to-version-control/ guide-to-version-control/ ml ml distributed-version-control-illustrated/ distributed-version-control-illustrated/ 2

Version control Also called source control Other alias source configuration management source code management 3

You have been doing it Your own version control system: KalidAzadResumeOct2006.doc KalidAzadResumeMar2007.doc instacalc-logo3.png instacalc-logo4.png logo-old.png Save as: leave the old version intact. Single backup file: Document.old.doc Version number or date: Document_V1.doc Share folder for other people to access/modify the file(s) 4 Still better than nothing!

But it doesnt scale Imagine putting all the related files of a gigantic software project (e.g. WINDOWS 8) in a single shared folder, and have thousands of developers accessing it. NO WAY. 5

What does a version control system do? Backup and Restore. Files are saved as they are edited, and you can jump to any moment in time. Need that file as it was on Feb 23, 2007? No problem. Synchronization. Lets people share files and stay up-to-date with the latest version. Short-term undo. Monkeying with a file and messed it up? (Thats just like you, isnt it?). Throw away your changes and go back to the last known good version in the database. 6

What does a version control system do? Long-term undo. Sometimes we mess up bad. Suppose you made a change a year ago, and it had a bug. Jump back to the old version, and see what change was made that day. Track Changes. As files are updated, you can leave messages explaining why the change happened (stored in the VCS, not the file). This makes it easy to see how a file is evolving over time, and why. Track Ownership. A VCS tags every change with the name of the person who made it. Helpful for blamestorming giving credit. 7

What does a version control system do? Sandboxing, or insurance against yourself. Making a big change? You can make temporary changes in an isolated area, test and work out the kinks before checking in your changes. Branching and merging. A larger sandbox. You can branch a copy of your code into a separate area and modify it in isolation (tracking changes separately). Later, you can merge your work back into the common area. 8

Learn some terms 9 ServerClient Working copy Repository (file database) Trunk: main line v2_devel v1_old_stable v3_new_test

Checkout and Edit 10 Main trunk r3: milk eggs juice r4: milk eggs soup Check out Working copy: milk eggs soup Check in Revert

11 Main trunk Basic Diffs r1: milk r2: milk eggs r3: milk eggs juice r4: milk eggs soup +juice +eggs -juice, +soup ????

12 Main trunk Branching r4: milk eggs soup New Features r7: milk eggs soup bread r5: milk eggs soup r6: milk eggs soup rice

13 Main trunk Merging r4: milk eggs soup New Features r7: milk eggs soup bread r5: milk eggs soup r6: milk eggs soup rice +rice +bread r8: milk eggs soup bread rice +rice

Conflicts 14 Main trunk r3: milk eggs juice r4: milk cheese juice Working copy (r3*): milk hot dog juice Working copy (r3*): milk cheese juice -eggs +hot dog -eggs +cheese Valid check-in Conflicting check-in (cannot remove eggs)

How to resolve the conflict? Re-apply your changes. Sync to the latest version (r4) and re-apply your changes to this file: Add hot dog to the list that already has cheese. Override their changes with yours. Check out the latest version (r4), copy over your version, and check your version in. In effect, this removes cheese and replaces it with hot dog. 15

16 Main trunk Tag r1: milk r2: milk eggs r3: milk eggs juice r4: milk eggs soup

Real world example - simplified 17 Main trunk IE Windows MP 10 IE 6 Windows MP 10 IE 6 M11 Windows MP 11 IE 6 IE7 Windows MP 11 IE 7 Windows MP 10 IE 6 IE7 Windows MP 10 IE 7 MP11 Windows MP 11 IE 7 Windows MP 11 IE 7 MP RI FI RI

How do I get started? Get yourself more familiar with subversion (not the fastest/fanciest/most powerful on the market, but its good enough for most projects) Windows GUI for subversion: TortoiseSVN Very easy to use! Free book about subversion: Once you know how to use it, make it a habit (not hard at all). 18

Further reading Distributed Version Control: distributed-version-control-illustrated/ distributed-version-control-illustrated/ (Probably will not cover it this semester) 19