Version management tool
First Claim
Patent Images
1. A method for directly creating a text file of a desired version of a stored module, with the version comprising a plurality of lines of text and included in a development path including several versions, said method comprising the steps of:
- storing all lines active in the several versions in the path in an indexed line file;
an dretrieving only those lines active in the desired version from the line file for inclusion in the text file.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for preserving, generating, and merging different versions of a common module that utilizes a line file storing the text of every line in a version and addressing each line with a unique line identifier. Any desired version may be generated directly without creating intermediate versions. The unique line identifiers facilitate a merge operation that does not duplicate lines.
-
Citations
10 Claims
-
1. A method for directly creating a text file of a desired version of a stored module, with the version comprising a plurality of lines of text and included in a development path including several versions, said method comprising the steps of:
-
storing all lines active in the several versions in the path in an indexed line file;
an dretrieving only those lines active in the desired version from the line file for inclusion in the text file.
-
-
2. A method for storing a desired version of a module, where the desired version comprises a plurality of lines of text and is included in a given path which is one of many possible paths, with each path including an ordered set of versions of a common module, with each version identified by a version number, with each version in a path evolving from an immediately preceding version, and where a status history of activations and deletions of each line in a path is stored in a variant history file for the path, said method comprising the steps of:
-
storing all lines active in all versions in all paths in an indexed line file; identifying each line in said indexed line file by a unique line identifier (ULI); and storing a set of records, in the variant history file for the given path, for each ULI identifying a line active in any version in the given path, with each record in a set indicating a version number of a version in a given path where the line identified by the ULI becomes active, or a version number of a version in the given path where the line identified by the ULI is deleted.
-
-
3. A method for creating a text file of a desired version of a module, where the desired version is included in a given one of many possible paths, with each path including an ordered set of versions, each identified by a version number, of a common module, with each version in a path evolving from an immediately preceding version, and where a status history of activations and deletions of each line active in any version in a path is stored in a variant history file for the path, and where text of lines active in all versions in all paths is stored in an indexed line file with each line in the indexed line file identified by a unique line identifier (ULI), said method comprising the steps of:
-
identifying the given path in which the desired version is included and the version number of the desired version in said given path; searching the variant history file of the given path to determine which lines in the line file are active in the desired version; and retrieving, from said line file, the text of lines determined to be active in the desired version. - View Dependent Claims (4, 5)
-
-
6. In a version control system which stores several versions of a module, where each version is included in one of many possible paths, with each path including an ordered set of versions, each identified by a version number, of a common module, with each version in a path evolving from the immediately preceding version, with a unique change tag associated with the operation of creating a given version, where the text of all lines active in all versions along all paths of the module are stored in an indexed line file and identified by a unique line identifier (ULI). with each ULI including a tag field identifying a version and an index field, and where the status history of the activation and deletions of each line in a path are stored in a variant history file for the path, with each record in the variant history file including a ULI. a version number identifying a version in the path, and a status flag having a value indicating that the line identified by the ULI becomes active, is replaced, or is deleted in the identified version, a method for building a resulting variant history file for a TO path to reflect the merge of a selected version in a FROM path into a TO version, which is the last version in the TO path, to form a resulting version in the TO path, said method comprising the steps of:
-
providing a TO path variant history file and a FROM path variant history file; building a TO change list for said TO version; building a FROM change list for the selected version in the FROM path; building a common list of the change tags included in both said FROM change list and said TO change list; writing, in the resulting variant history file, a first set of TO variant history records, with the first set consisting of only those TO variant history records that include ULIs with change tags included in said TO change list but not included in said common list; identifying a second set of FROM variant history records, with said second set consisting of only those FROM variant history records that include ULIs with change tags in said FROM change list but not included in any record in said TO change list or said common list, and, for each of those ULIs, only the FROM variant history record having the greatest version number that is less than or equal to the version number of the selected version in the FROM path; modifying said second set of FROM variant history records so that the version number in each record is equal to the version number of the resulting version in the TO path; writing, to the resulting variant history file, said modified second set of FROM variant history records; writing, to the resulting variant history file, a third set of TO variant history records, with said third set consisting of only those TO records that include ULIs in said common list and that are included in a record in the TO variant history file and the FROM variant history file; and generating a fourth set of resulting variant history records, with each record in said fourth set associated with a selected one of the records in said third set and including the same ULI as the associated record, with the selection of a given selected record from said third set and the assignment of the value of the status flag in the fourth set record associated with the given selected record determined by the values of the version numbers and status flags of records in the FROM and TO variant history files that have the same ULI as the given selected third set record and by a predetermined set of rules applied to those values.
-
-
7. In a version control system which stores several versions of a module, where each version is included in one of many possible paths, with each path including an ordered set of versions, each identified by a version number, of a common module, with each version in a path evolving from the immediately preceding version, with a unique change tag associated with the operation of creating each version, where the text of all lines active in all versions along all paths of the module are stored in an indexed line file and identified by a unique line identifier (ULI). with each ULI including a change tag and an index field, a method for merging a selected version in a FROM path into a TO version, which is the last version in the TO path, to form the text file of a resulting version in the TO path, said method comprising the steps of:
-
building a common list of change tags included in ULIs identifying lines that have been active in both the TO and FROM paths; including, in the text file of the resulting version, lines identified by ULIs having change tags in said common list according to the status, in the TO and FROM versions, of the lines identified and according to a set of predetermined rules.
-
-
8. A computer operating under control of a stored program for allowing a user to store a source file module, to create and store new versions of the module, to create and name independent paths of development of the module, with each path being an ordered set of versions, comprising:
-
an I/O unit; memory means for storing a source file module, new versions of the source file module, an indexed line file, and a variant history file; a user interface, connected to the memory means by said I/O unit, for accessing existing versions from said memory and storing modified versions in said memory; CPU means, connected to the memory means by said I/O unit, for executing stored program instructions to build an indexed line file, stored in the memory, including the text of all lines active in all versions in all paths, with each line in said indexed line file identified by a unique line identifier (ULI), to build a variant history file, stored in the memory, including a set of records associated with each ULI identifying a line included in any version along a given path, where each record in a given set of records associated with a given ULI indicates a version in the given path where the line identified by the ULI became active or a version in the given path where the ULI was deleted; and
for utilizing said variant history file and indexed line file to directly generate the text file of a desired version in said given path without creating any intermediate versions.
-
-
9. A computer operating under control of a stored program for allowing a user to store a source file module, to create and store new versions of the module, to create and name independent paths of development of the module, with each path being an ordered set of versions, and with the versions in the path identified by version numbers, and for building, in the memory, an indexed line file, including the text of all lines active in all versions along all paths of the module, and a variant history file for given path, wherein the improvement comprises:
-
a memory for storing an indexed line file, a variant history file, and program data; a CPU, connected to said memory, for executing said program data to create an indexed line file having a unique line identifier associated with each line in the line file and a variant history file including an ordered set of records, with each record including a unique line identifier, associated with a line active in one of the versions in the given path, and indicating one of the version numbers in the given path where the line identified by the unique line identifier became active or one of the version numbers in the given path where the line identified by the unique line identifier was deleted. - View Dependent Claims (10)
-
Specification