Levente Uzonyi uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-ul.726.mcz==================== Summary ====================
Name: Monticello-ul.726
Author: ul
Time: 29 June 2020, 1:39:36.986367 am
UUID: b64f6b16-96de-40ed-aa9a-2c0f625bfcb1
Ancestors: Monticello-mt.725
- potentially speed up MCDirectoryRepository >> #includesVersionNamed: when the repository doesn't have version names cached
- cache self size in MCVersionName >> #versionName
=============== Diff against Monticello-mt.725 ===============
Item was added:
+ ----- Method: MCDirectoryRepository>>includesVersionNamed: (in category 'versions') -----
+ includesVersionNamed: aString
+
+ | comparable |
+ comparable := ((aString endsWith: '.mcz') and: [ aString size > 4 ])
+ ifTrue: [ aString allButLast: 4 ]
+ ifFalse: [ aString ].
+ allVersionNamesCache ifNil: [
+ "Instead of reading the contents of the entire directory in #allVersionNames, look up a single .mcz file.
+ This is just an optimization. If the file does not exist, the version may still be there as an mcd."
+ (directory fileExists: comparable, '.mcz') ifTrue: [ ^true ] ].
+ ^ self allVersionNames includes: comparable!
Item was changed:
----- Method: MCVersionName>>versionName (in category 'accessing') -----
versionName
"Answer my version name as a ByteString, without the file suffix or any ancestor-attributes."
| end |
self isEmpty ifTrue: [^ String empty].
end := self indexOf: $( ifAbsent: [
+ | size |
+ size := self size.
+ (size > 4
+ and: [ (self at: size - 3) == $.
+ and: [ (self at: size - 2) == $m
+ and: [ (self at: size - 1) == $c ] ] ])
+ ifTrue: [size - 3]
+ ifFalse: [size + 1]].
- (self size > 4
- and: [ (self at: self size - 3) == $.
- and: [ (self at: self size - 2) == $m
- and: [ (self at: self size - 1) == $c ] ] ])
- ifTrue: [self size - 3]
- ifFalse: [self size + 1]].
^self first: end - 1!