16
everaconflictoccurs.Insoftwareengineering,anadditionalleveloflockingisusually
performedsothatthecreationofanewbranchrequiresmanualintervention,andlock-
ing(checkin/checkout)isusedtoensurethatthelinearhistoryofeachbranchiscon-
vergent.
Multiplestateswithmerge.Thisvariationissimilartomultiplebranchingstates,withthe
additionofmergedversions.Therelationshipsofindividualstatesformageneralacyclic
graph,sinceseparatebranchescanbereunitedbymergingtwodistinctversions.CVS
implementsadivergentversionofthebranchingmodel,wherelockingisnotperformed,
andautomaticmergeoperationsreplaceexplicitconflictprevention.Contexts(Delisle
andSchwartz1987)areonewaytoextendthismodeltodealwithtraditionalnodeand
linkhypertextdatabases.
Arbitrarystatesets.Thisallowsforessentiallyarbitraryhistories,bytreatingoperations
asfirstclassobjects,ratherthanjustthestatestheycreate.Systemstypicallycreate
suchhistoriesbysupportingout-of-sequenceupdates,undoofarbitraryoperations,or
unrestrictedmergeoperations.Inthemostgeneralcaseanygroupofoperationscanbe
construedasdefiningastate,whoserelationshipsmaybeimplicitlyorexplicitlyman-
aged.Systemsoftenimposerestrictionsonallowedoperationsets,ormakesignificant
performancetradeoffsonwhatcombinationsarelikely.Sincestatesarerelativelyuncon-
strained,divergenceinthiskindofsystemcanbeageneralrule,assyntacticconsis-
tencydoesnotsignificantlyconstrainformsofdivergence.
Thevarietyofsystemsthathaveexperimentedwitharbitrarystatesetsisquitegreat.
Theearliestexample,tomyknowledge,isanunnamedsystemdescribedin(Elliot,Potaset
al.1971).Thissystem,intermediateintimebetweentheHESandFRESSsystems(DeRose
andDam1999),alsodevelopedatBrownUniversity,includedrevisiontracking,storageofan
arbitraryamountofeditinghistory,theselectivedisablingofchangesregardlessoftheir
temporalsequenceandeditingoperationslikemoveandcopy.Thefactthatcollaborators
17
wouldstillhavetoseriallyaccessthesamecomputerandvectorgraphicsdisplay,didnot
limittheeditorialcontrolsandfacilitiesoffered(althoughdisplaysizeandqualitycertainly
did).
PEDIT(Kruskal1984)wasanexperimentalprogrameditorthatrecordedalleditingopera-
tionsasconditionalcompilationinstructions.Changescouldbegroupedbymeansofat-
tachedbooleanexpressions,andadesiredstateofaprogramfileobtainedbysettingthe
appropriatecompilationflags.ThissystemworkedwiththeCpreprocessor,andallowedpro-
gramoptionstobecreatedbyappropriatelymanagededitingsessions.Anotherapproachto
change-orientedversioningwasproposedin(Lie,Conradietal.1989),andthislineofre-
searcheventuallyissuedinthecreationoftwoiterationsoftheEPOSsoftwareengineering
database.Thissystem(Munch1993)alsousedBooleanoperationstocontroltheselectionof
featuresinsoftwaresystems.UnlikePEDITitwasbasedonadatabaseengineandnotthe
programminglanguagepreprocessor.MuchoftheEposworkwasdevotedtoformalizingthe
softwarefeaturemodelandautomaticcompatibilitycheckingoffeaturesetsbasedonex-
plicitdeclarations.EPOS’sbasicideasofnon-historicalstatetrackingandchange-basedver-
sionmanagementaredirectlyapplicabletoauthoring,butthedetailsofitslogically-based
predicatesforvariantselectionarenot.
1.5 Distributionandarchitectureissues
Anyattempttoseparatedatadistributionfromconcurrencyisalittleartificial,sincethe
numberoflocationswheredataisstoredhascriticalimplicationsforthechoiceofalgo-
rithmsforconflictdetectionandresolution.Thefactthatthebestimplementationstrategies
varydoesnotpreventfullydistributeddatabasesfromofferingserializableeditinghistories,
nordoestheuseofacentralserverpreventanapplicationfromusingasynchronization
modelbasedonnon-serializableeditinghistories.Manydistributeddatabasesystems
(CoulourisandDollimore1988)provideagloballyconsistentstatebasedonaserializable
Previous Page Next Page