Version control system for software code
First Claim
1. A method for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said method comprising the steps of:
- receiving an access request to access the source code on a line-by-line basis;
accessing, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines;
generating, in response to the access request, a copy of at least one of the plurality of versions of the accessed source code lines;
receiving at least one edited source code line; and
storing, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received, wherein each of the versions contains information on a version of related source code lines.
1 Assignment
0 Petitions
Accused Products
Abstract
A software source code version control system for use during the development and maintenance of the software source code by multiple software developers in which historical version tracking is provided by maintaining the source code on a line-by-line basis in a source code storage, in which multiple versions of each source code line are stored in the source code storage, wherein each version has a corresponding version code and user code, thereby providing concurrent access to the software source code lines by multiple software developers for modification.
-
Citations
100 Claims
-
1. A method for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said method comprising the steps of:
-
receiving an access request to access the source code on a line-by-line basis;
accessing, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines;
generating, in response to the access request, a copy of at least one of the plurality of versions of the accessed source code lines;
receiving at least one edited source code line; and
storing, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received, wherein each of the versions contains information on a version of related source code lines. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developer, said method comprising the steps of:
-
receiving an access request to access the source code on a line-by-line basis;
accessing, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein each version of each source code line is stored in a compressed, canonical format, has a version code which contains information that identifies the version, the version code being stored within the source code storage, and has a user code which contains information describing the identity of at least one of the plurality of software developers, the user code being stored within the source code storage, and has a line data which contains information describing at least one of related source code lines, the line data being stored within the source code storage;
generating, in response to the access request, a copy of at least one of the plurality of versions of each of the accessed source code lines in an uncompressed, non-canonical format, wherein the version code of each of the copied versions contains information identifying the version as the most recently stored version and wherein the user code of each of the copied versions contains information relating to the identity of at least one of the plurality of software developers;
receiving at least one edited source code line;
storing, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received;
modifying the information contained in the user code of each new version of source code line, whereby the information is modified to relate to the identity of one of the plurality of software developers;
modifying the information contained in the line data of each new version of source code lines and at least one of the related source code lines, whereby the information is modified to relate the new version code to the version code of at least one of the related source code lines; and
modifying the information contained in the version code of each new version of source code line, whereby the information is modified to identify the new version as the most recent version of the source code line.
-
-
20. A method for editing source code which is arranged into a plurality of source code lines which are stored in a source code storage, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein the source code storage is accessible to a plurality of software developers, said method comprising the steps of:
-
sending an access request to the source code storage, the access request containing a reference to at least one of the plurality of source code lines stored in the source code storage;
receiving from the source code storage, in response to the access request, a copy of at least one of the plurality of versions of each source code line referenced in the access request, each copied version being received in an uncompressed, non-canonical format, wherein each of the versions contains information on a version of related source code lines;
modifying at least one of the copied versions of source code lines received from the source code storage, thereby creating at least one edited source code line; and
sending to the source code storage the at least one edited source code line. - View Dependent Claims (21, 22, 23, 24, 25)
receiving, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual files;
modifying at least one of the copied versions of virtual files received from the source code storage, thereby creating at least one edited virtual file; and
sending, to the source code storage, the at least one edited virtual file.
-
-
23. A method according to claim 20, wherein a plurality of virtual objects are stored within the source code storage, each of the plurality of virtual objects containing a plurality of line references, each of the plurality of line references corresponding to one of the plurality of source code lines, the source code storage arranged to store a plurality of versions of each of the plurality of virtual objects, wherein the reference contained in the access request to at least one of the plurality of source code lines comprises a reference to one of the plurality of virtual objects, and wherein a copy is received of at least one of the plurality of versions of each source code line corresponding to each of the plurality of line references contained in the virtual object referenced in the access request.
-
24. A method according to claim 23, further comprising the steps of:
-
receiving, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual objects;
modifying at least one of the copied versions of virtual objects received from the source code storage, thereby creating at least one edited virtual object; and
sending, to the source code storage, the at least one edited virtual object.
-
-
25. A method according to claim 20, wherein a symbol table is stored within the source code storage, the symbol table containing a plurality of symbols, the source code storage arranged to store a plurality of versions of the symbol table, and further comprising the steps of receiving from the source code storage a copy of at least one of the plurality of versions of the symbol table, modifying at least one of the copied versions of the symbol table, thereby creating at least one edited symbol table, and sending to the source code storage the at least one edited symbol table.
-
26. A computing device for version control of source code arranged into a plurality of source code lines, the computer device being accessible to a plurality of software developers, said computing device comprising:
-
a memory; and
a processor that (i) receives an access request to access the source code on a line-by-line basis, (ii) accesses, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, (iii) generates, in response to the access request, a copy of at least one of the plurality of versions of the accessed source code lines, wherein each of the versions contains information on a version of related source code lines, (iv) receives at least one edited source code line, (v) stores, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A computing device for version control of source code arranged into a plurality of source code lines, the computer device being accessible to a plurality of software developers, said computing device comprising:
-
a memory; and
a processor that (i) receives an access request to access the source code on a line-by-line basis, (ii) accesses, in response to the access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein each version of each source code line is stored in a compressed, canonical format, has a version code which contains information that identifies the version, the version code being stored within the source code storage, has a user code which contains information describing the identity of at least one of the plurality of software developers, the user code being stored within the source code storage, and has a line data which contains information describing at least one of related source code lines, the line data being stored within the source code storage, (iii) generates, in response to the access request, a copy of at least one of the plurality of versions of each of the accessed source code lines in an uncompressed, non-canonical format, wherein the version code of each of the copied versions contains information identifying the version as the most recently stored version and wherein the user code of each of the copied versions contains information relating to the identity of at least one of the plurality of software developers, (iv) receives at least one edited source code line, (v) stores, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received, (vi) modifies the information contained in the user code of each new version of source code line, whereby the information is modified to relate to the identity of one of the plurality of software developers, (vii) modifies the information contained in the line data of each new version of source code lines and at least one of the related source code lines, whereby the information is modified to relate the new version code to the version code of at least one of the related source code lines, and (viii) modifies the information contained in the version code of each new version of source code line, whereby the information is modified to identify the new version as the most recent version of the source code line.
-
-
45. A computing device for editing source code which is arranged into a plurality of source code lines which are stored in a source code storage, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein the source code storage is accessible to a plurality of software developers, said computing device comprising:
-
a memory; and
a processor that (i) sends an access request to the source code storage, the access request containing a reference to at least one of the plurality of source code lines stored in the source code storage, (ii) receives from the source code storage, in response to the access request, a copy of at least one of the plurality of versions of each source code line referenced in the access request, each copied version being received in an uncompressed, non-canonical format, wherein each of the versions contains information on a version of related source code lines, (iii) modifies at least one of the copied versions of source code lines received from the source code storage, thereby creating at least one edited source code line and (iv) sends to the source code storage the at least one edited source code line. - View Dependent Claims (46, 47, 48, 49, 50)
receive, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual files;
modify, at least one of the copied versions of virtual files received from the source code storage, thereby creating at least one edited virtual file; and
send, to the source code storage, the at least one edited virtual file.
-
-
48. A computing device according to claim 45, wherein a plurality of virtual objects are stored within the source code storage, each of the plurality of virtual objects containing a plurality of line references, each of the plurality of line references corresponding to one of the plurality of source code lines, the source code storage arranged to store a plurality of versions of each of the plurality of virtual objects, wherein the reference contained in the access request to at least one of the plurality of source code lines comprises a reference to one of the plurality of virtual objects, and wherein a copy is received of at least one of the plurality of versions of each source code line corresponding to each of the plurality of line references contained in the virtual object referenced in the access request.
-
49. A computing device according to claim 48, wherein the processor further comprises the steps to:
-
receive, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual objects;
modify at least one of the copied versions of virtual objects received from the source code storage, thereby creating at least one edited virtual object; and
send to the source code storage the at least one edited virtual object.
-
-
50. A computing device according to claim 45, wherein a symbol table is stored within the source code storage, the symbol table containing a plurality of symbols, the source code storage arranged to store a plurality of versions of the symbol table, and wherein the processor further comprises the steps to receive from the source code storage a copy of at least one of the plurality of versions of the symbol table, modify at least one of the copied versions of the symbol table, thereby creating at least one edited symbol table, and send to the source code storage the at least one edited symbol table.
-
51. Computer-executable process steps stored on a computer-readable medium, the computer-executable process steps for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said computer-executable process steps comprising:
-
code to receive an access request to access the source code on a line-by-line basis;
code to access, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines;
code to generate, in response to the access request, a copy of at least one of the plurality of versions of the accessed source code lines;
code to receive at least one edited source code line; and
code to store, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received, wherein each of the versions contains information on a version of related source code lines. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
-
69. Computer-executable process steps stored on a computer-readable medium, the computer-executable process steps for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said computer-executable process steps comprising:
-
code to receive an access request to access the source code on a line-by-line basis;
code to access, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein each version of each source code line is stored in a compressed, canonical format, has a version code which contains information that identifies the version, the version code being stored within the source code storage, and has a user code which contains information describing the identity of at least one of the plurality of software developers, the user code being stored within the source code storage, and has a line data which contains information describing at least one of related source code lines, the line data being stored within the source code storage;
code to generate, in response to the access request, a copy of at least one of the plurality of versions of each of the accessed source code lines in an uncompressed, non-canonical format, wherein the version code of each of the copied versions contains information identifying the version as the most recently stored version and wherein the user code of each of the copied versions contains information relating to the identity of at least one of the plurality of software developers;
code to receive at least one edited source code line;
code to store, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received;
code to modify the information contained in the user code of each new version of source code line, whereby the information is modified to relate to the identity of one of the plurality of software developers;
code to modify the information contained in the line data of each new version of source code lines and at least one of the related source code lines, whereby the information is modified to relate the new version code to the version code of at least one of the related source code lines; and
code to modify the information contained in the version code of each new version of source code line, whereby the information is modified to identify the new version as the most recent version of the source code line.
-
-
70. Computer-executable process steps stored on a computer-readable medium, the computer-executable process steps for editing source code which is arranged into a plurality of source code lines which are stored in a source code storage, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein the source code storage is accessible to a plurality of software developers, said computer-executable process steps comprising:
-
code to send an access request to the source code storage, the access request containing a reference to at least one of the plurality of source code lines stored in the source code storage;
code to receive from the source code storage, in response to the access request, a copy of at least one of the plurality of versions of each source code line referenced in the access request, each copied version being received in an uncompressed, non-canonical format, wherein each of the versions contains information on a version of related source code lines;
code to modify at least one of the copied versions of source code lines received from the source code storage, thereby creating at least one edited source code line; and
code to send to the source code storage the at least one edited source code line. - View Dependent Claims (71, 72, 73, 74, 75)
receive, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual files;
modify at least one of the copied versions of virtual files received from the source code storage, thereby creating at least one edited virtual file; and
send, to the source code storage, the at least one edited virtual file.
-
-
73. Computer-executable process steps according to claim 70, wherein a plurality of virtual objects are stored within the source code storage, each of the plurality of virtual objects containing a plurality of line references, each of the plurality of line references corresponding to one of the plurality of source code lines, the source code storage arranged to store a plurality of versions of each of the plurality of virtual objects, wherein the reference contained in the access request to at least one of the plurality of source code lines comprises a reference to one of the plurality of virtual objects, and wherein a copy is received of at least one of the plurality of versions of each source code line corresponding to each of the plurality of line references contained in the virtual object referenced in the access request.
-
74. Computer-executable process steps according to claim 73, further comprising code to:
-
receive, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual objects;
modify at least one of the copied versions of virtual objects received from the source code storage, thereby creating at least one edited virtual object; and
send, to the source code storage, the at least one edited virtual object.
-
-
75. Computer-executable process steps according to claim 70, wherein a symbol table is stored within the source code storage, the symbol table containing a plurality of symbols, the source code storage arranged to store a plurality of versions of the symbol table, and further comprising code to receive from the source code storage a copy of at least one of the plurality of versions of the symbol table, modify at least one of the copied versions of the symbol table, thereby creating at least one edited symbol table, and send to the source code storage the at least one edited symbol table.
-
76. A computer-readable medium which stores computer-executable process steps, the computer-executable process steps for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said computer-executable process steps comprising:
-
a receiving step to receive an access request to access the source code on a line-by-line basis;
an accessing step to access, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines;
a generating step to generate, in response to the access request, a copy of at least one of the plurality of versions of the accessed source code lines, wherein each of the versions contains information on a version of related source code lines;
a receiving step to receive at least one edited source code line; and
a storing step to store, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received. - View Dependent Claims (77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93)
-
-
94. A computer-readable medium which stores computer-executable process steps, the computer-executable process steps for version control of source code arranged into a plurality of source code lines, the plurality of source code lines maintained within a computer device having a memory, the computer device being accessible to a plurality of software developers, said computer-executable process steps comprising:
-
a receiving step to receive an access request to access the source code on a line-by-line basis;
an accessing step to access, in response to said access request, at least one of the plurality of source code lines, wherein the plurality of source code lines are stored within a source code storage which is located within the memory, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein each version of each source code line is stored in a compressed, canonical format, has a version code which contains information that identifies the version, the version code being stored within the source code storage, has a user code which contains information describing the identity of at least one of the plurality of software developers, the user code being stored within the source code storage, and has a line data which contains information describing at least one of related source code lines, the line data being stored within the source code storage;
a generating step to generate, in response to the access request, a copy of at least one of the plurality of versions of each of the accessed source code lines in an uncompressed, non-canonical format, wherein the version code of each of the copied versions contains information identifying the version as the most recently stored version and wherein the user code of each of the copied versions contains information relating to the identity of at least one of the plurality of software developers;
a receiving step to receive at least one edited source code line;
a storing step to store, in the source code storage, a new version of source code line corresponding to each of the edited source code lines received;
a modifying step to modify the information contained in the user code of each new version of source code line, whereby the information is modified to relate to the identity of one of the plurality of software developers;
a modifying step to modify the information contained in the line data of each new version of source code lines and at least one of the related source code lines, whereby the information is modified to relate the new version code to the version code of at least one of the related source code lines; and
a modifying step to modify the information contained in the version code of each new version of source code line, whereby the information is modified to identify the new version as the most recent version of the source code line.
-
-
95. A computer-readable medium which stores computer-executable process steps, the computer-executable process steps for editing source code which is arranged into a plurality of source code lines which are stored in a source code storage, the source code storage arranged to store a plurality of versions of each of the plurality of source code lines, wherein the source code storage is accessible to a plurality of software developers, said computer-executable process steps comprising:
-
a sending step to send an access request to the source code storage, the access request containing a reference to at least one of the plurality of source code lines stored in the source code storage;
a receiving step to receive from the source code storage, in response to the access request, a copy of at least one of the plurality of versions of each source code line referenced in the access request, each copied version being received in an uncompressed, non-canonical format, wherein each of the versions contains information on a version of related source code lines;
a modifying step to modify at least one of the copied versions of source code lines received from the source code storage, thereby creating at least one edited source code line; and
a sending step to send to the source code storage the at least one edited source code line. - View Dependent Claims (96, 97, 98, 99, 100)
receiving, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual files;
modifying at least one of the copied versions of virtual files received from the source code storage, thereby creating at least one edited virtual file; and
sending, to the source code storage, the at least one edited virtual file.
-
-
98. A computer-readable medium according to claim 95, wherein a plurality of virtual objects are stored within the source code storage, each of the plurality of virtual objects containing a plurality of line references, each of the plurality of line references corresponding to one of the plurality of source code lines, the source code storage arranged to store a plurality of versions of each of the plurality of virtual objects, wherein the reference contained in the access request to at least one of the plurality of source code lines comprises a reference to one of the plurality of virtual objects, and wherein a copy is received of at least one of the plurality of versions of each source code line corresponding to each of the plurality of line references contained in the virtual object referenced in the access request.
-
99. A computer-readable medium according to claim 98, further comprising the steps of:
-
receiving, from the source code storage, a copy of at least one of the plurality of versions of at least one of the plurality of virtual objects;
modifying at least one of the copied versions of virtual objects received from the source code storage, thereby creating at least one edited virtual object; and
sending, to the source code storage, the at least one edited virtual object.
-
-
100. A computer-readable medium according to claim 95, wherein a symbol table is stored within the source code storage, the symbol table containing a plurality of symbols, the source code storage arranged to store a plurality of versions of the symbol table, and further comprising the steps of receiving from the source code storage a copy of at least one of the plurality of versions of the symbol table, modifying at least one of the copied versions of the symbol table, thereby creating at least one edited symbol table, and sending to the source code storage the at least one edited symbol table.
Specification