Concepts of Version Control A Technology-Independent View.

Slides:



Advertisements
Similar presentations
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Advertisements

Configuration management
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.
Version Control System (Sub)Version Control (SVN).
Let Use SVN(Subversion) Interaction Lab. Hyo-Geun Ahn
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Software Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Source Code Revision Control Software CVS and Subversion (svn)
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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Debugging, Build and Version Control Rudra Dutta CSC Spring 2007, Section 001.
Software Configuration Management (SCM)
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.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Introduction to Version Control
The Design Workshop Introduction to Version Control 1.
Revision Control and Issue Tracking Andrew Watkins.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Version control Using Git Version control, using Git1.
…using Git/Tortoise Git
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
CSE 219 Computer Science III CVS
Microsoft Visual SourceSafe “(VSS) does not eliminate the need for discipline and coordination. It only makes discipline and coordination easier to live.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
1 MSTE Visual SourceSafe For more information, see:
Version Control System
Version Control and SVN ECE 297. Why Do We Need Version Control?
USM - IT BRANCHING PRESENTATION. Branch copying a codeline to create a new one codelines evolve independently //depot/main/...
Visual Source Safe –A Quick Tour. CONTENTS What is VSS ? How to install VSS ? How does VSS track versions? VSS Concepts & Features Utilities available.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
1 Week 9 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
SVN intro (review).
Delphi or C++ Builder, with Subversion and Jenkins
Version Control System
LECTURE 3: Software Configuration Management
Revision Control Daniel Daugherty
Systems Analysis and Design I
Presentation transcript:

Concepts of Version Control A Technology-Independent View

Topics We’ll discuss basic version control concepts including: What version is and why we care Repositories and archives Checking in and check out archives Reporting on archives Branching and merging archives Security

What is Version Control? Over time files evolve and change. Tracking these changes can be difficult, since the changes stem from different project teams. Version control allows users to maintain the integrity of files that are subject to change.

Why Do We Care? Version control systems provide users the ability to serialize changes to a given file. Most such systems also allow users to revert to an earlier form of a file. Anything can be stored under a good version control system including source code, documents, images, and binaries.

Common Version Control Software Some common software for version control includes: PVCS Microsoft Visual SourceSafe CVS / RCS

Version Control Basics Although there are many version control systems on the market, most provide the same basic features. This section describes some of those features.

Repository All version control systems work based on a repository. The repository holds a copy of each file under control of the version control system. The repository generally maintains an initial copy of each file along with a log of all subsequent changes made to that file.

Adding Files to the Repository Not all of the files on your system are automatically version controlled when a version control system is installed. To “version” a file, you must explicitly place that file into the repository. A file under control of the version control software is commonly called an archive.

Checking Out Archives From the Repository Once a file has been placed under revision control, you must check it out of the repository in order to change it. This ensures that one user doesn’t inadvertently overwrite the changes made by another user. This is called checking out an archive.

Checking Out Archives From the Repository Every version control system is essentially a library with each archive a book. At any given time, one and only person can have possession of a book. In version control systems, only the user with possession of an archive can change that archive. It is also possible to check out read-only copies of archives.

Checking In Files to the Repository Once you have an archive checked out, you can make changes to it. Once you have completed the changes, it must be checked back into the repository so that it is again available to the other users of the version control system. This is called checking in an archive.

Unlocking a Revision Sometimes we check out an archive intending to make changes to it, but then discover we don’t really have to. We don’t want to check in an archive that hasn’t changed. Most version control systems provide the ability to unlock a checked out archive without actually checking it in.

Revisions When you save your changes using a version control system, the new version of the archive is given a new revision number. It isn’t necessary to know how the revision numbers are generated (it’s a form of magic), but you should know that they represent the changes in an archive over time.

Checking Out Archives by Revision Sometimes we want to check out an archive by a specific revision number. This is useful if we need to revert to an earlier code base in order to diagnose a bug. Be careful! If you make changes to earlier revision of an archive and check it back in, you lose all of the changes in the later revisions of that archive.

Repository Utilities Most version control systems provide one or more of the following utilities: Reports on an archive’s revision history Reports on the differences between two revisions of an archive Branching and merging Security

Report on Revision History A report on revision history generally tells you, by revision, what changes were made to an archive. This depends on the person making the changes to add comments to the archive when it is checked in. Always do this!

Report on Differences Between Two Revisions A report on differences is essentially a sophisticated comparison algorithm. It attempts to determine where lines have been added to, changed, or removed from one revision when compared to another. It is not always precise, but for source code it can be useful for determining what changed between the revisions.

Branching and Merging Sometimes multiple development teams need access to the same archives for different purposes. One team might be responsible for maintenance and bug fixes while another is responsible for new development and enhancements. We need a way to allow these teams to co- exist without stepping on one another’s code base.

Branching Branching allows us to create two different revisions from a single, common, root archive. Each team could thus make its changes independently to its own branch of the root. This is dangerous!

Merging At some point, we’ll need to combine the branched revisions of the archive. This is common with a new release of a product; we need to merge the bug fixes with the new features. Modern version control systems allow us to merge branches back into a single revision. This often requires human intervention.

Security We often define basic security on our repository including: The users who can access the repository The abilities of that the users can exercise on the archives Different projects with their own repositories, might not allow developers from other projects access to their archives.

Review We’ve discussed basic version control concepts including: What version is and why we care Repositories and archives Checking in and check out archives Reporting on archives Branching and merging archives Security