Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.

Slides:



Advertisements
Similar presentations
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Advertisements

Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Concepts of Version Control A Technology-Independent View.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Concurrent Versioning System Chapter 8 (ALBING’s).
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
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Damien Guard (BSc, MBCS) Guernsey Software Developer Forum Change management with Subversion.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
SubVersioN – the new Central Service at DESY by Marian Gawron.
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.
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.
Software Engineering Modern Approaches
Introduction to Version Control
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
The Design Workshop Introduction to Version Control 1.
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 ?
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.
Chapter 4: Software Configuration Management (SCM)
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
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.
…using Git/Tortoise Git
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.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
ClearCase Concepts and Terminology
An Overview of Tools Available in CS 501 Ken Hopkinson
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
1 MSTE Visual SourceSafe For more information, see:
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Version Control System
Version Control and SVN ECE 297. Why Do We Need Version Control?
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Revised by David Svoboda 2003 Concurrent Versions System Overview of CVS architecture.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Open Source Software Development Environment
SVN intro (review).
Version control, using Git
Version Control System
Design and Programming
Microsoft Visual Source Safe How & Why
Concurrent Versions System
Presentation transcript:

Low level CASE: Source Code Management

Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive your development files –Serve as a single point of entry/exit when adding or updating development files

Why You Want A Source Control System  Supports concurrent development  Manage diverging source code bases  Records file/release versions  Easy access to all previous revisions  Can record why a revision was made  Optimal disk space usage  You’ll end up doing something equivalent anyway so it may as well be automated

Source Code Management Tools Are Not  A substitute for project management  A replacement for developer communication  A replacement for backups (but they are more helpful with human “errors”)

How They Work  Central database of source code, documentation, build tools  Each file stored only once - all other versions are diffs or copies of that one copy  To Make a Change –Check out the latest version of a file –Make the changes –Update the database

What should be in the database  Source Code  Documentation  Build Tools –Often need old versions of the tools to build old versions of the software –Ensures software is rebuilt exactly as the customer received it  Test Suites  Anything else you might want later

Version Control  Companies ship several products from the same source base (ie Win NT and Windows 2000 versions of MS Office)  When tracking down bugs you want to examine the code as it was when the product shipped

Code Sharing  Multiple people can work on the same source base without colliding –(1) Locks individual files so only one person at a time can modify it *OR* –(2) Allows multiple people to modify a source file and the system will automatically merge the changes (usually)

Locking  Only one person can work on a file at once  Works fairly well if developers work on different areas of the project and don’t conflict often  Problem 1: People forget to unlock files when they are done  Problem 2: People work around locking by editing a private copy and checking in when the file is finally unlocked - easy to goof and lose changes

Merging  Several people can work on a file at once  Before committing changes, each user merges their copy with the latest copy in the database –This is normally done automatically by the system and usually works, but you should not blindly accept the result of the merge

Labelling  Label all the files in the source base that make up a product at each milestone  Just before and just after a major change (eg. changing several interfaces)  When a new version ships

Version Trees  Each file in the database has a version tree  Can branch off the version tree to allow separate development paths  Typically a main path (trunk) for the next major version and branches off of shipped versions for maintenance

Branching  When a new version ships, typically create a branch in the version tree for maintenance  Double update: fix a defect in the latest version and then merge the changes (often by hand) into the maintenance version  Also create personal versions so you can make a change against a stable source base and then merge in the latest version later

Examples  RCS –Solaris: man rcsintro  CVS –Solaris: man cvs –  Visual SourceSafe –msdn.microsoft.com/SSAFE  ClearCase –

RCS  File management only  Transaction model –check out and lock –edit –check in and unlock  Little support for binaries

CVS  Built on top of RCS –Therefore little support for binaries  Database can be remote  No locking: merge before commit  Fast  Integrates well with emacs  Ubiquious and free.  WinCVS as well.  Access via file, server or ssh.  Examples later in class

SourceSafe  Microsoft’s entry into the field  Project-based  Checkout-edit-checkin model  Built-in web site creation tools  Integrates with MSDEV

Clearcase  Clearcase is configuration management on steroids  You create a view of the database with a config spec, which describes how to select files from the database.  When you set a view, Clearcase creates a virtual filesystem containing only those versions of the files selected by the config spec

Clearcase Features  Distributed System –Several groups at different locations can work on the same database  Can install triggers –Example: the author of a file when some one makes a change to it  Uses merging model like CVS, but can also lock files

More Clearcase Features  Integrates with MSDEV  Build Management –Knows to rebuild out-of-date files even if your makefile doesn’t  Slow and a bit buggy

Helpful Rules for Version Control Bliss  Archived Files Should Always Compile  Code Review Files Before Check-in  Compile and run latest archived files *as a set* before Check-in  No Cheating (even “simple bug fixes” need to undergo this process)

CVS Examples  Concurrent Versions System –Creates a central repository where all source code is stored as well as information on who changed what and when –Users checkout a copy of the source code, edit it, and then commit their modified version –Users can see what has changed to help track down bugs and allows multiple users to work on the same source code at the same time  CVS commands are executed using –cvs –“cvs help” will print out valid commands

CVS: Setup  We recommend setting up your team repository in one of your team member’s account  See Wiki or CVS manual for step-by-step instructions

CVS: Setup  Teams can access their repository by setting the CVSROOT environment variable  If repository is in kbarr’s account, then use –export CVSROOT=“/????” –???underwindows????  Put this in your.bashrc file (for linux)  To put your project under cvs –Usually useful to code a bit without cvs –cd into project directory –cvs import –m “Msg” pname head start

CVS - Basics  Common commands –cvs checkout pname –cvs update pname [filelist] –cvs commit [–m “log message”] [filelist] –cvs add [–m “log message”] [filelist] –cvs diff  Set the $CVSEDITOR environment variable to change which editor is used for log messages

CVS – Multiple Users F.1 User A User B checkout F.1

CVS – Multiple Users F.2 User A User B commit F.1F.2

CVS – Multiple Users F.2 User A User B commit F.3F.2 Conflict!

CVS – Multiple Users F.2 User A User B update F.2/3F.2 Merges F.2 changes and denotes conflicts With >>>

CVS – Multiple Users F.4 User A User B commit F.4F.2

CVS  Conflicts are rare because developers are working on different parts of the project  Rule of thumb: always update before commit  Informative log messages can be very helpful tracking down bugs