[54] SYSTEM AND METHOD FOR
INTEGRATING EDITING AND VERSIONING
IN DATA REPOSITORIES
[75] Inventor: Michael L. Van De Vanter, Mountain View, Calif.
[73] Assignee: Sun Microsystems, Inc., Mountain View, Calif.
[21] Appl. No.: 545,901
[22] Filed: Oct. 20, 1995
[51] Int. C I. G06F 11/34
[52] U.S. C I 395/703
[58] Field of Search 395/703
[56] References Cited
U.S. PATENT DOCUMENTS
4,558,413 12/1985 Schmidt et al 395/712
4,809,170 2/1989 Leblang et al 395/703
5,155,847 10/1992 Kironac et al 395/712
5,386,559 1/1995 Eisenberg et al 395/703
5,574,898 11/1996 Leblang et al 395/601
5,649,200 7/1997 Leblang et al 395/703
OTHER PUBLICATIONS
Roy Levin, et al., The Vesta Approach to Precise Configuration of Large Software Systems (Jun. 14, 1993) Digital Systems Research Center, pp. 1-38.
Mick Jordan, et al., Software Configuration Mnagement in an Object Oriented Database (Jun., 1995) Sun Microsystems Laboratories, 13 pages.
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.
27 Claims, 8 Drawing Sheets