75
3.5 Merging
Usingserializabilitytoguaranteesimplehistoriescanbeexpensivetoenforceintermsof
systemresources,butmoreimportantly,itisexpensiveinitsimpactontheabilityofusers
tomaintainaneffectiveworkflowwithoutbeingblocked.Therefore,avarietyof“merge”
toolshavebeendeveloped(GoldsteinandBobrow1984;Tichy1985;Neuwirth,Chandhoket
al.1992;MunsonandDewan1994;ZellerandSnelting1995).Thesetoolshavethebasictask
ofreconcilingapairofeditinghistoriestocreateasingleresultanthistory.Sometimesthe
operationsinahistoryaretheresultofadifferencingprocessthatcalculatesthechanges
betweenonestateandanother.
Mostmergetoolshaveadoptedasimplemodelofthebasicoperationsonasequence.The
operationsofinsertionanddeletionsufficetoexpressallpossibletransformationsfromone
sequencetoanothersequence,andalsocorrespondtotheeditinghistoriesconstructedby
mostdifference-findingtools.Onlyaveryfewsystemscandetectoperationsthatmovetext,
eventhoughmosteditingsystemsprovidesuchoperations,andmostusersrelyheavilyon
suchoperations.Recentworkonthedifferenceproblemhascomeupwithgoodapproxima-
tionalgorithmsthatfinddifferencesthatusemoveandcopyoperations,forexample,see
(Chawathe,Rajaramanetal.1996).
Palimpsestmakestwoalternativechoicestothistraditionofsystemdesign.First,ithasa
“contextualhistory”whichdoesnotdirectlyreflectthetemporalorderofoperations,but
capturesaparticulartypeofcontextualdependency.Thedependenciesinthenewmodel
canbethoughtofasavariationofcausalorderings(Lamport1978).Whileallinter-change
dependenciescannotbeeliminated,itturnsoutthatthetotallyorderedtimelineofmost
standardapproachescanbeconsiderablyrelaxedtoapartialorder.The“change-oriented”
versioncontroltechniqueinsoftwareengineering(Kruskal1984;Lie,Conradietal.1989;
76
Munch1993)isstronglyrelatedtothisapproach,althoughitsgoalistoprovideawayto
managesoftwarevariationratherthantomanageeditinghistories.
Second,Palimpsestexplicitlyrecognizesthenotionofidentityofsubsequencesbydi-
rectlyhandlingtheoperationsof“move”and“copy.”Thisdecisionhelpstomakemerge
moreusefulintexthandling.Changeorientationmakesitpossibletocombinechanges
withinablockoftextwithotherchangesthatmoveittoanewlocation.Thisexplicit
treatmentofmoveandcopyoperationsisalsoawayoffaithfullyrepresentingtherealities
ofactualauthoring,inwhichthenotionofmovingorcopyingtextisameaningfulone.
Moveandcopyarenotanissuewhenmergingchangehistoriescreatedwiththeoutput
ofmost“diff”algorithms,astheycannotdetectsucheditingoperationsefficiently.Collabo-
rativeeditingisanapplicationwheretrackingindividualoperations,mergingthem,and
handlingthemoutofsequenceareespeciallyuseful.Suchapplicationsneedtotrackstateat
severaldistinctsites,copewithdisconnectedoperation,andmeetcollaboratingauthors’re-
queststoundotheirown(orothers’)changes,evenwhenfurthereditinghasoccurred.
Severalotherapproachesarerelatedtothisonebytheirfocusonindividualchanges.The
already-mentionedworkonchange-orientedversioningapproachestheproblemofmanaging
multipleconfigurationsofsoftwaresystemsbymaintainingsetsofcombinablechangesthat
representthemodificationsrequiredtocreateaparticularversionofasoftwaresystem.
Giventhespecializedneedsofsoftwaredevelopment,thechange-orientedversioningwork
hasmainlyaddressedtheissuesofhowtoselectappropriatesetsofchangesandensurethe
creationofcombinationsthatwillensurecorrectsemanticsoftheresultingsoftware.
Theproblemofimplementinganundocommandintexteditors(Leeman1986;Abowd
andDix1992;PrakashandKnister1992;ChoudharyandDewan1995;Ressel,Nitsche-
Ruhlandetal.1996;Dix,Mancinietal.1997),andtheproblemofmanagingchangesinsyn-
chronouscollaborativeeditingarealsocloselyrelatedtothiswork,whichprovidesonepo-
Previous Page Next Page