Version control system for software code

Data processing: software development – installation – and managem – Software upgrading or updating – Plural version management

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06757893

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention concerns a system for maintaining versions of software source code. More specifically, the present invention provides a system for use by software developers during the development and maintenance of the software source code of a software system, whereby modified versions of the software source code are tracked and stored on a line-by-line basis within a source code storage. Because modified versions of the software source code are tracked and stored on a line-by-line basis, it is possible for multiple software developers to work on the same software source code at the same time, while still providing historical version tracking of all modifications to each of the source code lines.
2. Description of the Related Art
Development of a software system typically involves the authoring of a large number of lines of software source code which are typically arranged into one or more files wherein each file contains several source code lines. The source code files are compiled or translated from the programming language in which they were written into machine-language objects which are then linked together to form a cohesive executable program for execution on a computer.
Typically, the source code files that comprise a software system are stored within the memory of one or more computers or file servers during the development, maintenance and upgrade of the software system. Software developers using workstations in a networked environment edit the source code as needed during development to implement the objectives and design requirements for the software system, to fix errors (“bugs”), and to make upgrades or enhancements. The edited source code files are then used to re-build the software system, thereby incorporating the changes and modifications made by the software developers. Tracking of both edited and non-edited source code is therefore desirable in order to ensure that all changes and modifications are eventually completed, and to ensure that changes can be backed out if they introduce errors.
The tracking of software source code becomes much more critical during development of a large-scale, complex software system by multiple software developers in a distributed software development system comprising numerous computing devices within a network environment. Currently, several types of software management tools are available to assist software developers during the development of software systems. Computer-Aided Software Engineering (CASE) tools are typically used in large-scale, complex software system development projects to provide configuration management and version control of the software source code that comprises the software system. Examples of current CASE tools that provide version control include, among others, Revision Control System (RCS) and Source Code Control System (SCCS) for use in UNIX-based computing environments, and Program Version Control System (PVCS) and Microsoft's SourceSafe™ for use in DOS- or Windows-based computer environments.
The typical prior art version control tool, such as those mentioned above, generally provides the ability to track the versions of software source code from its inception to its current state, including all versions in between. A new version of the source code is generally created after a set of modifications and/or additions have been made to the previously existing source code files. Known version control tools generally maintain and track modifications to software source code by establishing and tracking multiple versions of the individual software files that comprise the software source code during the development process.
Version control according to these known tools generally consists of four major functions. First, a software system library is maintained for storing a master copy of all software source code files that comprise the software system. Second, access to the individual source code files is controlled by allowing each particular source code file to be checked-out to only one software developer at a time for modifications, thereby providing a local copy of the source code file to the software developer's workstation for editing as needed. While the source code file is checked-out to one of the software developers, other software developers are locked-out and prevented from making any changes to the source code file, although they are able to read the unedited master copy of the source code file from the software system library. This lock-out mechanism prevents subsequent problems that would arise during check-in of the source code file if more than one software developer had made changes to the same source code file at the same time. Third, modifications are introduced to the master copy of the source code file from the local copy of the source code file that was edited by the software developer who checked-out the source code file. Fourth, version tracking of each of the source code files is maintained pursuant to one of two methods. In the first method, an entire copy of the modified source code file is saved to the master copy in the library and is given a new version number. In the second method, only the modifications that were made from the prior master copy are saved, such that only those modifications that were made by the software developer to the checked-out source code file are saved in the software system library, along with a corresponding new version number. In this method, a particular version of a source code file is subsequently obtained by accessing the original master copy and then applying all of the changes corresponding to each version of the source code file that was created since the original master copy.
Although the known version control tools for file-based source code provide the capability for historical version tracking of modifications made to each source code file, several drawbacks and adverse consequences arise when developing a software system using such version control tools in a multiple software developer environment. First, the memory storage space that is needed to store multiple complete versions for each source code file grows unmanageably large when developing a large, complex software system in a multiple software developer environment.
Second, the lock-out mechanism utilized by traditional version control tools operates on a file-by-file basis, thereby preventing other software developers from working on a source code file that has been checked out, even though a single source code file may contain several routines, functions, and source code lines that are not being modified by the software developer who checked-out the source code file. Thus, all other software developers that have unrelated changes to make within the checked-out file must wait until the source code file is checked-in before proceeding to make their changes to the source code file. Development of a source code file under traditional version control is therefore performed in a sequential rather than concurrent manner, thereby resulting in the introduction of significant delays into the development process. In addition, since all other software developers have read-only access to the unedited master copy of the source code file while it is checked out, they cannot access the modifications that were incorporated in the checked-out source code file in order to determine if the modifications will adversely affect their respective development efforts.
Third, a file-based version control system does not provide functional version tracking for a set of related changes that are made by a software developer to certain sections of several source code files in order to implement a functional change or modification into the overall software system.
Fourth, a version control system which saves only the changes made to each source code file does not provide quick and transparent access to a specific version of a software file because it must first implement a source code file rebuild process which sequentially applies ea

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Version control system for software code does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Version control system for software code, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Version control system for software code will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3365523

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.