Nicolas Cellier uploaded a new version of Monticello to project The Trunk: http://source.squeak.org/trunk/Monticello-nice.695.mcz
==================== Summary ====================
Name: Monticello-nice.695 Author: nice Time: 14 February 2019, 1:46:52.89164 pm UUID: 1933b192-0ab2-bc46-af47-b06f031516b9 Ancestors: Monticello-nice.694
Add a utility for finding last merge of two versions.
A use case:
| mcw allBF540 | mcw := (MCPackage named: 'Monticello') workingCopy ancestry. allBF540 := (mcw allAncestors select: [:e | e versionName = 'Monticello-bf.540' ]) asArray. ^mcw lastMergeOf: allBF540 first and: allBF540 last.
Note: implementation is sub-optimal but just works
=============== Diff against Monticello-nice.694 ===============
Item was added: + ----- Method: MCAncestry>>lastMergeOf:and: (in category 'progeny') ----- + lastMergeOf: aNode and: anotherNode + "Find the last merge of two Nodes starting from myself. + Answer nil if there is none. + Note: there might have been several merges, in which case we take the common merge of merges. + Example: if c is a merge of a and b, d is also a merge of a and b, and e is a merge of c and d, then asnwer e." + + | common | + (self hasAncestor: aNode) ifFalse: [^nil]. + (self hasAncestor: anotherNode) ifFalse: [^nil]. + common := ancestors collect: [:e | e lastMergeOf: aNode and: anotherNode] as: Set. + common remove: nil ifAbsent: []. + common size = 1 ifTrue: [^common anyOne]. + ^self + !
packages@lists.squeakfoundation.org