System and method for integrating editing and versioning in data repositories
First Claim
1. A coordinator for integrating editing and versioning in a data repository wherein said data repository is a structured representation maintained in a computer memory of a software system having at least one package with at least one package version, each said version including at least one component, and wherein said editing involves using an editor to modify some of said components and said versioning includes allowing a user to mutate contents of one of said versions of a particular package to create a new version of said particular package while maintaining a record of existing versions of said particular package, said coordinator comprising:
- a plurality of component handlers including a set of first component handlers, each respectively associated with a component being edited and said editor being used to edit said associated component, each said first component handler being configured to mediate all editing actions with versioning consequences made to said associated component using said editor; and
a plurality of version handlers, each respectively associated with one of said package versions in which at least one of said components is open for editing and a set of second component handlers, including said first component handlers, associated with said components of said associated version, each said version handler being configured to monitor said editing actions with versioning consequences made to its associated version'"'"'s components and to monitor versioning commands issued by said user with respect to said associated version, each said version handler, in response to said editing actions and said versioning commands, being configured to cause said second component handlers to implement versioning actions in cooperation with said editors open on said components so that said contents of said existing versions are immutable and said new versions alone reflect said editing actions and said versioning commands.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for integrating versioning and editing of data repositories is disclosed. A data repository consists of a number of packages, each having at least one package version that includes at least one component. A version handler is uniquely associated with a package version being edited and monitors all versioning commands associated with that package version. A component handler is uniquely associated with a component being edited or a component in an editing chain. When associated with a component being edited, a component handler forms the exclusive interface between that component and the editor and monitors all editing actions taken with respect to its associated component. Other component handlers act as communications links between their child component handler and one parent handler (e.g., a top-level component handler is coupled to the version handler associated with the same package). By monitoring all editing actions, the present system is able to respond to versioning commands issued by a user in a coordinated manner so as to rigorously maintain configuration management. For example, in response to a user issuing an advance command, the present system constructs a new package version including components modified since the last advance and sharing components with back versions, which are retained intact. To support this coordination, the handlers are implemented as objects that encapsulate handler routines and abstract interfaces. Interfaces between a component handler and the editor opened on the component handler'"'"'s component are customizable so that any editor can be used with the present system.
-
Citations
27 Claims
-
1. A coordinator for integrating editing and versioning in a data repository wherein said data repository is a structured representation maintained in a computer memory of a software system having at least one package with at least one package version, each said version including at least one component, and wherein said editing involves using an editor to modify some of said components and said versioning includes allowing a user to mutate contents of one of said versions of a particular package to create a new version of said particular package while maintaining a record of existing versions of said particular package, said coordinator comprising:
-
a plurality of component handlers including a set of first component handlers, each respectively associated with a component being edited and said editor being used to edit said associated component, each said first component handler being configured to mediate all editing actions with versioning consequences made to said associated component using said editor; and a plurality of version handlers, each respectively associated with one of said package versions in which at least one of said components is open for editing and a set of second component handlers, including said first component handlers, associated with said components of said associated version, each said version handler being configured to monitor said editing actions with versioning consequences made to its associated version'"'"'s components and to monitor versioning commands issued by said user with respect to said associated version, each said version handler, in response to said editing actions and said versioning commands, being configured to cause said second component handlers to implement versioning actions in cooperation with said editors open on said components so that said contents of said existing versions are immutable and said new versions alone reflect said editing actions and said versioning commands. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable memory that can be used to direct a computer to integrate editing and versioning in a data repository, wherein said data repository is a structured representation maintained in said computer memory of a software system having at least one package with at least one package version, each said version including at least one component, and wherein said editing involves using an editor to modify some of said components and said versioning includes allowing a user to mutate contents of one of said package versions while maintaining a record of existing versions and creating a new version, said computer readable memory comprising:
-
a plurality of component handlers including a set of first component handlers, each respectively associated with a component being edited and said editor being used to edit said associated component, said editor communicating with said associated component via one of said first component handlers, each said first component handler mediating all editing actions with versioning consequences made to said associated component using said editor; and a plurality of version handlers, each respectively associated with one of said package versions in which at least one of said components is open for editing and a set of second component handlers, including said first component handlers, associated with said components of said associated version, such that each of said second component handlers is configured to communicate occurrence of said editing actions with versioning consequences and versioning commands issued by said user to said associated version handler, said associated version handler being configured to responsively cause said associated component handlers to implement versioning actions in cooperation with said editors open on said components so that said contents of said existing versions are immutable and said new versions alone reflect said editing actions and said versioning commands. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method for integrating editing and versioning in a data repository, wherein said data repository is a structured representation maintained in a computer memory of a software system having at least one package with at least one package version, each said version being represented in the structured representation as an immutable collection of at least one component, said structured representation storing information about said packages, package versions and components so that any of said package versions is recoverable from said structured representation, said method comprising the steps of:
-
monitoring editing actions made to said components associated with a particular package version as said at least one component is being edited with an editor; monitoring all versioning commands issued by any user with respect to said particular package version as said at least one component is being edited; and updating said structured representation based on occurrence of editing actions with versioning consequences and said versioning commands as said at least one component is being edited so that said editing actions and versioning commands result in creation of at least one new package version without affecting contents of existing package versions. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification