CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.

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

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
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.
Concepts of Version Control A Technology-Independent View.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
1 SVN – Tool for Version Control Talal Ahmed ( ) Ali Ahsan ( ) Adil Zia Khan ( ) Farid Ullah ( )
6/27/20151 Doris Lee Concurrent Version System (CVS)
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Revision Control Software CVS and Subversion (svn)
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.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
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 Code Deployment LifeCycle August 2011.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
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.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Systems with Subversion (SVN) and Tortoise.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
CSE 219 Computer Science III CVS
Version Control with SVN Images from TortoiseSVN documentation
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
Version Control CSC 517 John Slankas. Version Control Managing files and directories, and the changes made to them over time. - Adapted from “Version.
CVS: Concurrent Version System Lecturer: Prof. Andrzej (AJ) Bieszczad Phone: “UNIX for Programmers and Users” Third.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.
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
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Problem Solving With C++ SVN ( Version Control ) April 2016.
Version Control Jose Caraballo. What is version Control?
SWIM Project Meeting, Bloomington, IN September 2006 Working with the SWIM Code Repository David E. Bernholdt Oak Ridge National Laboratory
Anjana & Shankar September,2010 Introduction to Programming Tools.
Version Control Using Subversion Tom Hilinski Natural Resource Ecology Laboratory Colorado State University October 2007
Software Configuration Management -Subversion- RTLAB YuJin Park.
CompSci 230 Software Construction
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion
SVN intro (review).
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Source Control Dr. Scott Schaefer.
Subversion Reasons to use How it works Subversion important commands
Version Control with Subversion (SVN)
CSE 303 Concepts and Tools for Software Development
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control System using Git
Subversion User Training
Development and Deployment
Subversion.
Concurrent Version Control
Revision Control Daniel Daugherty
Compilers, Make and SubVersion
Concurrent Version System (CVS)
Subclipse CSCI 3130 Summer 2016.
Subversion Basics Guide
Version Control System - Git
Amandeep Jawa Worker Bee Software
Prof. Hilfinger CS164 Lecture 4
Systems Analysis and Design I
Git GitHub.
Presentation transcript:

CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles

Overview Version control systems Basic concepts Repository and working copies Tag, branch, and merge Using Subversion

The Development of the HelloWorld Application Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 New feature development and bug fixes … (hello world!) (adding ConsoleReader ) (using Scanner )

Problems During Development Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 … New feature has broken existing code. How do we find out which part of the code has been changed? How do we revert back to the previous version? New feature development and bug fixes

Problems During Development Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 … Customer 1 requests a bug fix. Can we give the customer the development version with the bug fix? Do we still have the Version 1.0 code? New feature development and bug fixes (HelloWorld => Hello)

Problems During Development Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 … Customer 2 requests a bug fix. Where do we put in the bug fix? Version 1.0 Version customer 1’s bug fix Development version New feature development and bug fixes (hello =>hola)

Problems During Development Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 … Customer n requests a bug fix. How many different versions do we need to maintain? New feature development and bug fixes

Problems During Development Prototype Release Version 1.0 Initial coding Add more features Release Version 2.0 … Put all bug fixes into an intermediate release. How do we collect all the bug fixes into one release? New feature development and bug fixes Release Version 1.1

Version Control Systems CVS Most popular / well known / widely used open source version control system Somewhat obsolete due to some inherent system limitations Subversion, Arch, Monotone Commercial Visual SourceSafe ClearCase BitKeeper

Repository and Working Copies – Import C:\dev1\HelloWorld.java Repository HelloWorld.java import cvs -d /home/cysun/current/vc/cvs init export CVSROOT=/home/cysun/current/vc/cvs cvs import -m "initial import" hello cysun start Log messageProject nameVendor tagRelease tag

Repository and Working Copies – Checkout HelloWorld.java Repository C:\dev2\HelloWorld.javaC:\dev1\HelloWorld.java/home/dev3/HelloWorld.java Working copies checkout cvs checkout hello

Revisions HelloWorld.java.1 Repository C:\dev1\HelloWorld.java commit HelloWorld.java.2 cvs add ConsoleReader.java cvs status cvs diff cvs commit -m "hello, you"

Tag –Mark A Moment in Time File A File B File C File D “Release-1_0” cvs tag "Release-1_0“ cvs checkout -r “Release-1_0” -d hello-1.0 hello

Branch – Work in Parallel HelloWorld.java (version 1.0) 4 5 … … Toward 2.0 release Toward 1.1 release cvs tag -b “1_0-bugfix1” cvs checkout -r "1_0-bugfix1" -d hello-1.0-bugfix1 hello

Merge Copy changes between different branches HelloWorld.java (version 1.0) … … 3.10 (version 1.1) Toward 2.0 release cvs update -j "1_0-bugfix1"

Subversion Pros: A better CVS Fixed many annoying aspects of CVS  Recursive add, binary file handling, keyword substitution, local diff, status output etc. Significant improvements  Atomic commit, constant time branching and tagging, better structure design etc. Feels like CVS Cons: Just a better CVS Does not scale to large, distributed development environments

Project Directory Structure Branching and tagging in Subversion are through directory copying. Consequently, a project usually has the following directory in the repository: /project /trunk /branches /tags

Working with the Directory Structure /project file1 file2 … /project /trunk file1 file2 … /branches /tags

Common Command Syntax svn [src_dir] [dest_dir] Could be local directories or URLs.

Tagging Copy /trunk to a directory under /tags

Branching Copy /trunk to a directory under /branches

Merging Apply the difference between two versions to the local working copy.

Other Useful Subversion Commands Add Remove Update Revert Commit Log Status

Online Resources The CVS book - bean.com/ bean.com/ The Subversion book Subversion official site Subversion Eclipse plugin –