Software Configuration Management Donna Albino LIS489, December 3, 2014.

Slides:



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

Software engineering tools for web development Jim Briggs 1CASE.
Version Control System (Sub)Version Control (SVN).
Version Control, Revision Control Software Configuration Management.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
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.
Dedi Rahmawan Putra  Shared Document  Conventional Ways  Common Problems  What is TortoiseSVN  Advantages over another tools  Basic Concepts.
Concepts of Version Control A Technology-Independent View.
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?
Version Control Systems Phil Pratt-Szeliga Fall 2010.
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.
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.
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.
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.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Software Engineering Modern Approaches
Source Code Management with CVS Kurt Wiersma December 2004.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Introduction to Version Control
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
The Design Workshop Introduction to Version Control 1.
Revision Control and Issue Tracking Andrew Watkins.
Version Control with Subversion Quick Reference of Subversion.
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.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Chapter 4: Software Configuration Management (SCM)
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
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?
1 Brief Introduction to Revision Control Ric Holt.
ClearCase Concepts and Terminology
Version Control with SVN Images from TortoiseSVN documentation
11 Version Control Systems Mauro Jaskelioff (originally by Gail Hopkins)
Version Control CSC 517 John Slankas. Version Control Managing files and directories, and the changes made to them over time. - Adapted from “Version.
Version Control System Lisa Palathingal 03/04/2015.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Version Control System
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
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.
Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Version Control Systems
LECTURE 2: Software Configuration Management
Source Control Dr. Scott Schaefer.
Version control, using Git
Version Control System
LECTURE 3: Software Configuration Management
Revision Control Daniel Daugherty
Systems Analysis and Design I
Presentation transcript:

Software Configuration Management Donna Albino LIS489, December 3, 2014

Why do I need it? Do you have multiple people working on software development? Do you have multiple clients for your software? Do they want to have exactly the same version of software as all the others, or will they want custom solutions? Does your client want to be able to roll back to an older version if a new version does not function correctly? Do you want to be able to do new development on a file, and still have a way of rolling back to a released version of the file in order to investigate a bug report? Do you want to keep track of which versions of compilers and development tools you used to create your software, and be able to know when you updated tools in your software development?

Benefits of Software Configuration Management Track changes in software – What bugs do we have to fix? – What requirement does this bug trace back to? – Who is assigned to fix each bug? – A new release to your client/clients will include which fixes? – What files did each fix involve, and what lines changed? – What happens if several people are creating changes in the same file? Easily roll back to a previous version to undo a fix, or make another change if the fix is incomplete Create an archive of the changed files that can be installed on multiple machines

How does it work? Create baseline – What files will be part of it? – One baseline, or more? Check files out – For reading? Or for editing? – Current version? Or an earlier version? Check files in, or discard changes and revert to a previous version Add new files to the baseline, or delete obsolete ones Get information about files – What is being edited? – What is the latest version? – What is the history on this file? Create new releases Comparing files under control

Branches and Merges

What to look for in tools? Open source vs. proprietary How it deals with two people wanting the same file for different fixes How it deals with merging fixes that affect the same file Do you want only version control, or do you want bug tracking, requirements tracing, wikis, blogs, etc.

Implementation Differences File locking vs File Merging Client-server vs Distributed

File Locking Some tools guarantee that only one developer has access to a file at one time by locking the file. If someone has it checked out for editing, no one else can check it out. Advantage: no merging problems Disadvantage: serial development takes longer, or developers don’t use the tools

Version Merging Look for split screen merging – Easy to see your change vs baseline and select appropriate action at each merge point Merges in image files will be challenging – If you anticipate this, talk with the vendor and see if they support what you need to do

Unified Modeling Language (UML)

Distributed vs Client-Server Revision Control Client-server: Single central repository against which a developer merges Distributed: Each developer owns a working copy of the code base, and swaps patches among themselves Distributed system plus: – Faster; no communication with central server – Each developer’s working copy is a backup of the code base Distributed system minus: – No baseline exists by default, only working copies

A look at a few tools SCCS SVN Clearcase

SCCS Source Code Control System Bundled with Unix, open source Stable; no active development Checkouts done one file at a time File locking Text-based Client-server Construct a release by creating a set of file versions

SVN Subversion Apache, open source Check out a copy of the whole baseline Client-server Can move directories and files around in the source tree without losing history Merging needs work – Integration with IBM Rhapsody is buggy

Clearcase Rational Software division of IBM, proprietary Create a view (sandbox with read-only source) Check out files within your view Configuration spec coordinates what other baselines you are using Integrates with Clearquest for tracking bugs and DOORS for referencing requirements Produces a Configuration Record, which contains the build procedure, all the input files, and all the derived files that are part of a release Text interface or graphic interface

Many other tools RCS, CVS influenced many newer tools Git designed by Linus Torvalds for Linux – An example of distributed revision control SVK is a distributed version of SVN Fossil is a cross-platform system of version control and bug tracking cmcrossroads.com