Chapter 3: Storing and Managing Code with CVS


One of the most important things you can do, as a developer, is version source code and other project files. What does it mean to version a file? According to Merriam Webster, a version is a variant or type of an original, and that s exactly what we mean in professional software development. In an iterative development process (and is it ever exactly right the first time?) files undergo numerous changes before and after a software package is released. In this chapter, we will discuss the benefits of versioning and examine a freely -available open source tool for storing and managing code: CVS.

start sidebar
Where to Get Concurrent Versions System (CVS)

CVS is an open source tool of inestimable value to the software development community. The most recent version is 1.11.13 and can be downloaded at: http://ccvs.cvshome.org/servlets/ProjectDownloadList.

end sidebar
 

The Benefits of Versioning

Performing versioning on project files has a multitude of benefits. Consider the following very common real world situations:

  • Some functionality may cease to work when new requirements are introduced or refactoring occurs in some classes. Rather than try to remember how something used to work, a version control system can show exactly what code was changed, making it easier to fix bugs .

  • Often there will be a quality assurance or testing team for projects. These teams usually wish to test the project at recreatable milestones. In order to accurately document the results of their testing and recreate issues a versioning system that can somehow label a project release milestone is very helpful.

  • The version control system provides a central place to disseminate project files to all development staff on a team.

  • A good version control system can allow developers to work in the same modules of a system at the same time by assisting with module merging and allowing files to be locked to prevent concurrent modification.

  • A good version control system allows or requires developers to make notes of changes to modules; in this way other developers can quickly assess the nature of the changes made and plan their own module integration accordingly .

Let us introduce the idea of a code repository, then, to assist with the versioning process. We will define a code repository as some piece of software whose job is to keep track of our files, and all the different versions or revisions of our files as well as any milestones we define and comment history we enter. In order to be most useful, a source code repository should be

  • Accessible through a well-published protocol so that disparate clients will have easy access to it

  • Support multiple users accessing the repository and ideally keep a history of which users have made changes to files




Professional Java Tools for Extreme Programming
Professional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and Maven (Programmer to Programmer)
ISBN: 0764556177
EAN: 2147483647
Year: 2003
Pages: 228

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net