Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
231 words
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 package versions while maintaining a record of existing versions and creating a new version, said coordinator comprising: a component handler associated with a component being edited and said editor being used to edit said component, said component handler being configured to mediate all editing actions with versioning consequences made to said component using said editor; and a version handler associated with one of said package versions and all of said component handlers associated with said components of said version, 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, said version handler, in response to said editing actions and said versioning commands, being configured to cause said component handlers associated with said components of said package version to implement versioning actions in cooperation with said editors open on each of said components.
Claim 2
Dependent Claim
78 words
The coordinator of claim 1, wherein said structured representation is hierarchical, a plurality of said components being selected from file components or folder components, said folder components having at least one subcomponent selected from one of said file components or another of said folder components, said hierarchical representation including at least one top-level component selected from a first file component or a first folder component, each top-level component being associated with at least one of said package versions.
Claim 3
Dependent Claim
38 words
The coordinator of claim 1, wherein each component in an editing chain is associated with a component handler, said editing chain being the set of all components between and including a top-level component and each component begin edited.
Claim 4
Dependent Claim
278 words
The coordinator of claim 3, wherein: said component handlers are instances of an abstract component handler object, said abstract component handler object encapsulating component handler routines and abstract component handler interfaces, said interfaces specifying component handler messages usable by said component handlers for communicating with their subhandlers and said version handler; at least a subset of said component handler messages being selected from the group consisting of: a notify full name message informing a subhandler of its name, said name indicating said subhandler's associated version handler and component; a notify version immutable message to inform said subhandler whether or not to allow its associated component to be opened for editing by said editor; a notify version dirty message to inform said subhandler that some part of said version is dirty; an advance message asking said subhandler to create a new component representing currently edited values of its associated subcomponents; a revert message asking said subhandler to restore editing state of said subcomponent to that of said subcomponent immediately after prior advance; a lookup message asking said subhandler to open a new component handler for a first subcomponent named by an argument to said lookup message; a quit message asking said subhandler to unconditionally and recursively terminate all editing of its associated component and subcomponents of its associated component; and a get edit command message asking said subhandler to produce an editing command that, when executed, invokes editing on said subhandler's associated component; such that, when said subhandler receives any of said messages, said subhandler performs actions required by said message and recursively relays said message to child component handlers associated with child components of said subhandler's associated component.
Claim 5
Dependent Claim
208 words
The coordinator of claim 3, wherein: said version handlers are instances of an abstract version handler object, said abstract version handler object encapsulating version handler routines and an abstract version handler interface, said interface specifying version handler messages usable by said version handler for communicating with component handlers coupled to said version handler and said resource manager; at least a subset of said version handler messages being selected from the set consisting of: an is immutable message sent by said version handler to said top-level component handler, said is immutable message indicating when true that no editing of components included in said version handler's package version is allowable; a set version dirty message, sent by a component handler to its associated version handler, said set version dirty message informing said associated version handler that one its constituent components has been edited; an is dirty message that returns true when a user has made any change in any editor associated with said package version; and a get version commands message, sent by a component handler to its associated version handler, in response to which said version handler returns to said sending component handler a set of version commands that can invoked from an editor associated with said component handler.
Claim 6
Dependent Claim
206 words
The coordinator of claim 1, further comprising an editing buffer opened on each component being edited, such that said editing by said editor occurs in said buffer, wherein said editor and said component handler share editing information via an editor/component handler interface and wherein any editor interfaced with one of said component handlers is configured to perform a standard set of versioning functions, at least a subset of which are selected from the group of consisting of: keeping track of buffers according to a buffer ticket supplied by said component handler; receiving buffer contents from said component handler; producing a current value of said buffer when asked by said component handler, said current value being current contents of said buffer; responding to name changes of said component by changing name of said buffer; responding to a permission to edit command relayed by said component handler, said editor's associated component being uneditable when said permission to edit is false; displaying a dirty bit flag during an editing session; displaying a menu of versioning options provided by said handler, said versioning options being unknown to said editor; and implementing a revert command by throwing away all changes to said edit buffer since most current package version was created.
Claim 7
Independent Claim
169 words
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 including 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 during editing editing actions made to said at least one component of said one 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 one 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 so as to maintain said information provided by said structured representation as said at least one component is being edited.
Claim 8
Dependent Claim
165 words
The method of claim 7, wherein: said step of monitoring said editing actions is performed by a component handler coupled to each respective edited component and editors being used to edit said components, said component handler providing an exclusive interface between each respective component and said editor; said step of monitoring said versioning commands for said one package version is performed by one version handler associated with said one package version, said one version handler being coupled to each component handler associated with said one package version, said associated component handlers relaying respective component handler messages to said version handler indicating occurrence of respective ones of said editing actions; and said step of updating said structured representation is collaboratively performed by said component handlers and said one version handler, said version handler controlling said component handlers and said component handlers controlling said editors so that said versioning commands are executed in a coordinated fashion, existing versions remain immutable and editing of a package continues seamlessly.
Claim 9
Dependent Claim
159 words
The method of claim 8, wherein, when said versioning command is "advance", calling for advancing a selected package version having a selected version handler, and an editing action with versioning consequences has not occurred in any of said components of said package version, said step of updating said structured representation comprises: creating a new package version of said package, said new package version having constituent components whose contents are unchanged from said selected package version; rolling forward said selected version handler to be associated with said new package version rather than said selected package version; retaining associations between said selected version handler and all selected component handlers with which said selected version was associated before said advance action occurred, so that a user is able to continue editing said package after said advance action is completed, said new package version being edited rather than said selected package version; and retaining said current version as one of said back versions.
Claim 10
Dependent Claim
195 words
The method of claim 8, wherein, when said versioning command is "advance", calling for advancing a selected package version having a selected version handler, and an editing action with versioning consequences has occurred in any of said components of said package version, said step of updating said structured representation comprises: said version handler issuing advance commands to component handlers associated with said selected package version, said advance commands causing said selected component handlers to cause results of editing changes to their associated selected components to be saved as new components; creating a new package version of said package, said new version including said new components and all unchanged selected components; rolling forward said selected version handler to be associated with said new package version rather than said selected package version; retaining associations between said selected version handler and all selected component handlers with which said selected version was associated before said advance action occurred, so that a user is able to continue editing said package after said advance action is completed, said new package version being edited rather than said selected package version; and retaining said selected version as a back version of said package.
Claim 11
Dependent Claim
138 words
The method of claim 8, wherein, when said editing action with versioning consequences comprises a user making editing changes to a first component of said one package version before editing changes have been made to any other components of said one package, said step of updating said structured representation comprises: a first component handler associated with said first component passing a version dirty message to a first version handler associated with said one package version; said first version handler causing a notify_version_dirty message to be sent to a first set of component handlers consisting of component handlers associated with said one package version which are also associated with components of said one package version being edited; and said first set notifying said associated editors that one of said components associated with said one package version has been changed.
Claim 12
Dependent Claim
106 words
The method of claim 8, wherein, when said versioning command is "check out", calling for the creation of an editable checkout branch of program development from an immutable mainline version, said step of updating said structured representation comprises the steps of: creating a checkout package version that is identical to said unadvanceable mainline version, components of said checkout package version being freely editable; rolling forward a first version handler associated with said mainline version to be associated with said checkout package version; and informing users editing said checkout package version that they are editing said checkout package version and that said checkout package version is advanceable.