Java Tutorial - Java Script :
Revision Control and Code Repositories
Any serious programming project of any size needs to be concerned about configuration management and control. A configuration management (CM) system or revision control system (RCS) tracks changes to software as it is
being developed. Most CM systems allow only one programmer to check out a module for editing at a time. Checking out a module locks the module and prevents others from changing it. Other programmers can get copies of the module, but they are not allowed to make changes to their copy. This allows many programmers to work on a single project without stepping on each other’s toes. It also provides a central repository where anyone on the project
team can go to retrieve the latest version or any previous version of the source code.
After the changes to a module have been completed the programmer checks in the module. Checkin unlocks the module and makes the changes available to the rest of the team. It allows someone else to check the module out to make further changes as needed. As changes are checked into the system, the programmer provides information or documentation about the changes that were made. These comments form a history of the changes that were made to the system as the system was developed. Most systems automatically add this historical documentation as comments to the source code files involved in the change.
The CM system also allows changes to be rolled back. Most systems allow a rollback to any previous code revision. The easiest way to do this is to keep a copy of each version of each file as it is checked in. Although that is a simple
approach, it also consumes a lot of storage space for large projects. CM systems realize that most source code is stored as simple text files. Instead of storing the complete file in the repository, the CM system just stores the changes to the file. When a file is checked out, the CM system builds the requested version of the file by applying all of the changes made to that file since it was originally checked in. This approach allows for space-efficient storage of all previous versions of a source code file. In other words, a CM system maintains a complete history of your source code.
At certain points along the development cycle, you will normally want to make a release. A CM system will allow you to mark a version of the source code as a release. From that point, you can then continue making changes as
before. You can also elect to split off into two or more directions, starting from the same source code base. This feature is called branching. Sometimes, you will want to recombine two different branches back into a single version. This is called merging.
A CM system does not build or compile your code. It does not provide bug tracking, change management, or collaboration features. But what it does do is critically important for any large software project.
