A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-topa.392.mcz==================== Summary ====================
Name: Monticello-topa.392
Author: topa
Time: 3 May 2010, 12:08:36.05 pm
UUID: 725583e4-61fe-4946-9c81-ec9151571118
Ancestors: Monticello-ar.391
Making MCMs visible to users.
Useful for non-update-mcms, e.g.,
Seaside installation-mcms or the like.
=============== Diff against Monticello-ar.391 ===============
Item was changed:
----- Method: MCFileRepositoryInspector>>refresh (in category 'as yet unclassified') -----
refresh
| packageNames |
packageNames := Set new.
packageList := nil.
versions := repository readableFileNames collect: [ :each | | name |
name := (each copyUpToLast: $.) copyUpTo: $(.
name last isDigit ifFalse: [Array with: name with: '' with: '' with: each]
ifTrue:
[Array
with: (packageNames add: (name copyUpToLast: $-)) "pkg name"
with: ((name copyAfterLast: $-) copyUpTo: $.) "user"
with: ((name copyAfterLast: $-) copyAfter: $.) asInteger "version"
with: each]].
- versions := versions select: [:each | (each at: 3) isNumber].
newer := Set new.
inherited := Set new.
loaded := Set new.
(MCWorkingCopy allManagers
" select: [ :each | packageNames includes: each packageName]")
do: [:each | | latest |
each ancestors do: [ :ancestor |
loaded add: ancestor name.
ancestor ancestorsDoWhileTrue: [:heir |
(inherited includes: heir name)
ifTrue: [false]
ifFalse: [inherited add: heir name. true]]].
latest := (versions select: [:v | v first = each package name])
detectMax: [:v | v third].
(latest notNil and: [
each ancestors allSatisfy: [:ancestor | | av |
av := ((ancestor name copyAfterLast: $-) copyAfter: $.) asInteger.
av < latest third or: [
av = latest third and: [((ancestor name copyAfterLast: $-) copyUpTo: $.) ~= latest second]]]])
ifTrue: [newer add: each package name ]].
self changed: #packageList; changed: #versionList!