102
operations.Theonlyconstraintactuallyenforcedbyasystemisthatbeforecheckinginthe
newversiontheuserwhocreatedanewerversionatleasthadtheopportunitytolookat
(andedit)itspredecessors.Inpractice,ofcourse,succeedingversionsusuallyusuallyarethe
resultofeditingthepreviousversion,andsystemstakeadvantageofthisfact,usingdiff
algorithmstooptimizethestorageofversions.
5.1.1 RepresentingtraditionalversiongraphsinPalimpsest
APalimpsestmodeloftraditionalsoftwareengineering-styleversioningapproacheslike
thosein,e.g.(Rochkind1975;Tichy1985;Cohen,Sonietal.1988).Considerabranching
systemwithoutmerge.APalimpsestmodelofthissystemuseschangesetstorepresenteach
nodeintheversiongraph.Eachchangesetcorrespondingtoanodewouldbeasupersetof
thechangesetrepresentingitsparentnode,correspondingtothefactthatitwasderivedby
addingchangestoitsparent.
Addingmergetosuchasystempotentiallyintroducesproblems,inthecasethatcompo-
nentchangesconflict.Whennoconflictsarepresent,amergeresultisobtainedsimplyby
takingtheunionofthetwoparents.Thisresultwouldthenserveasthebaseforanyuser
correctionstotheresultofthemerge,intheformofadditionalchangestothemergedver-
sion.Inthepresenceofconflicts,therearetwopossibilities.Thesimplestistoeliminate
conflictsbyamendingtheaddressorderingasdiscussedinSection4.3.2.Thissimplepossi-
bility,howeverisratherdifferentfromthepoliciesofthesystemsthatwearetryingto
emulate.
Analternativeapporachisthecreateaninitialmergeresultrepresentingaconflict-free
unionofthechangesinthetwoparentversions.Theconflictingchangeswouldbestoredin
aseparatechangesetforhandinterventionbytheuser,operation-by-operation.Inthis
case,themechanicalmergerwouldserveasastartingpointfortheusertocreateafinal
mergeresult.Thisisessentiallysimilartothemergefacilitiesinmostsoftwareconfiguration
managementsystems,whichdetectdifferences,andthenoffertheusertheopportunityto
operations.Theonlyconstraintactuallyenforcedbyasystemisthatbeforecheckinginthe
newversiontheuserwhocreatedanewerversionatleasthadtheopportunitytolookat
(andedit)itspredecessors.Inpractice,ofcourse,succeedingversionsusuallyusuallyarethe
resultofeditingthepreviousversion,andsystemstakeadvantageofthisfact,usingdiff
algorithmstooptimizethestorageofversions.
5.1.1 RepresentingtraditionalversiongraphsinPalimpsest
APalimpsestmodeloftraditionalsoftwareengineering-styleversioningapproacheslike
thosein,e.g.(Rochkind1975;Tichy1985;Cohen,Sonietal.1988).Considerabranching
systemwithoutmerge.APalimpsestmodelofthissystemuseschangesetstorepresenteach
nodeintheversiongraph.Eachchangesetcorrespondingtoanodewouldbeasupersetof
thechangesetrepresentingitsparentnode,correspondingtothefactthatitwasderivedby
addingchangestoitsparent.
Addingmergetosuchasystempotentiallyintroducesproblems,inthecasethatcompo-
nentchangesconflict.Whennoconflictsarepresent,amergeresultisobtainedsimplyby
takingtheunionofthetwoparents.Thisresultwouldthenserveasthebaseforanyuser
correctionstotheresultofthemerge,intheformofadditionalchangestothemergedver-
sion.Inthepresenceofconflicts,therearetwopossibilities.Thesimplestistoeliminate
conflictsbyamendingtheaddressorderingasdiscussedinSection4.3.2.Thissimplepossi-
bility,howeverisratherdifferentfromthepoliciesofthesystemsthatwearetryingto
emulate.
Analternativeapporachisthecreateaninitialmergeresultrepresentingaconflict-free
unionofthechangesinthetwoparentversions.Theconflictingchangeswouldbestoredin
aseparatechangesetforhandinterventionbytheuser,operation-by-operation.Inthis
case,themechanicalmergerwouldserveasastartingpointfortheusertocreateafinal
mergeresult.Thisisessentiallysimilartothemergefacilitiesinmostsoftwareconfiguration
managementsystems,whichdetectdifferences,andthenoffertheusertheopportunityto