Levente Uzonyi uploaded a new version of Monticello to project The Trunk: http://source.squeak.org/trunk/Monticello-ul.662.mcz
==================== Summary ====================
Name: Monticello-ul.662 Author: ul Time: 27 February 2017, 2:18:31.823715 am UUID: 807424ff-1828-4e04-94f8-331c71dc16fd Ancestors: Monticello-mva.661
- omit ifAbsent from #index* sends when the default value, 0 would used
=============== Diff against Monticello-mva.661 ===============
Item was changed: ----- Method: String>>withLoadedPackageVersions (in category '*monticello') ----- withLoadedPackageVersions "Everywhere the receiver contains a package version in the format: PackageName-author.123 for which a version of that package is loaded in the image, answer a new String with each of those package versions changed to reflect the currently loaded version." | string | string := self. MCWorkingCopy allManagers do: [ : eachWorkingCopy | | start packageName | start := 1. packageName := eachWorkingCopy packageName. [ start := string findString: packageName startingAt: start. start > 0 and: [ string size > (start + packageName size + 4) ] ] whileTrue: [ | dot end versionName | dot := string indexOf: $. + startingAt: (end := start + packageName size). - startingAt: (end := start + packageName size) - ifAbsent: [ 0 ]. dot > 0 ifTrue: [ end := (dot + 1 to: string size) detect: [ : n | (string at: n) isDigit not ] ifNone: [ 0 ]. (end > (dot + 1) and: [ (dot + 1 to: end - 1) allSatisfy: [ : n | (string at: n) isDigit ] ]) ifTrue: [ versionName := string copyFrom: start to: end - 1. versionName asMCVersionName packageName = packageName ifTrue: [ string := string copyReplaceTokens: versionName with: eachWorkingCopy ancestors first name ] ] ifFalse: [ end := start + packageName size ] ]. start := end ] ]. ^ string!
packages@lists.squeakfoundation.org