Email:   


Home
In This Issue
Email a Friend
EasyPrint
Click here for the RSS feed's XML code. This is not a browser URL.


SOFTWARE CONFIGURATION MANAGEMENT
SCM version control, auditing, and reporting
By Kathy T. Evans-Davis

If you're using a version control system or source management system in your software development project, then you are wisely saving your team and yourself probable headaches down the road. If you're not using one, then I liken that practice to driving at Autobahn speeds on a U.S. highway -- it's risky, fun, and faster; but will inevitably lead to accidents or lend itself to trouble.

In the software development process, Software Configuration Management (SCM) uses tools to maintain source code and its evolution over time. SCM provides the primary capabilities of:

  • Maintaining files and file revisions in a repository
  • Detecting source change conflicts and providing multi-developer merging
  • Tracking change originators
  • Providing an association with revisions for consistent and repeatable builds

Simply put, SCM allows you to control a set of files in a repository and track revisions of those files. How does this work? Well, when changes are made to a file in a repository by a different developer, SCM identifies change conflicts and either automatically merges them or notifies the initial developer of the conflict.

This capability allows multiple developers to modify the same set of files. SCM also provides tracking accountability, and allows you to logically group files together in related sets such as source files that comprise a software image or executable.

Language used in SCM version control
Before we delve too deeply into the details of SCM version control, let's look at some basic terminology commonly used in the SCM process.

First, there's a repository, which is a central location where files are stored and managed. A repository is also called a tree. Performing a check-out is getting files from the repository to your local system's working folder. When making changes to your local files and you want them to coincide with your repository changes, then you perform an update. To check your changed files back into the repository, you perform a commit. If you and someone else changed the same file, you can bring the two changed files together, performing a merge. If a conflict between the two merged files occurs, then the commit is rejected, and the developer has to manually merge the changes. When a change is committed, a new revision is created for the file.

Multiple developers can work from the main tree (the cornerstone, if you will) of the repository, or a branch that resides on the tree. Working from branches, as shown in Figure A, allows developers to work independently without affecting the tree. When the branches are stable, they can be merged back into the main tree.





[ Next ]

-- Advertisement --

Learn Notes and Domino 7 at your place and pace!
Learn Notes and Domino in your office and/or home! TLCC's highly acclaimed distance learning courses for users, developers, and admins will enhance your career and your resume.

The many included activities and demos will make you a pro! Expert instructor help is a click away. WebSphere courses are also available!

Click here to try a FREE demo course!!

-- Advertisement --

Whitepaper - Integrating SharePoint with Lotus Notes: Strategic Coexistence
Notes users who use SharePoint for collaboration and document sharing struggle to integrate team document libraries into their day-to-day work. Read about IT options for dealing with these two partially-compatible infrastructures, including migration, doing nothing, and strategic coexistence based on Mainsoft SharePoint Integrator for Lotus Notes.

Download the whitepaper today.
Copyright © 1998-2008, ZATZ Publishing. All rights reserved worldwide.