Hi Eliot,
This should be resolved in MonticelloConfigurations-dtl.137 in the inbox.
I put it in the inbox because it affects the update stream. I think I have a reasonable implementation now, but if you can check it before I move it to trunk I'd appreciate it.
A limitation as currently implemented is that changing the update map name requires a new default updater, so the user would be stuck updating the (hopefully new) stream from its beginning. That is fine as long as we really want to switch update streams, but not so good if someone is just fiddling around with the preference settings to see what they do.
This can be fixed, but I think this is a relatively infrequent use case so the current approach may be good enough. I did add a confirm dialog to prevent the user from reinitializing the update stream without warning.
Dave
On Thu, Aug 27, 2015 at 03:41:53PM -0700, Eliot Miranda wrote:
Hi David, Hi All,
I see a couple of issues with the update map name I can't solve. First, the change made in May to use a default McMcmUpdater instance means that the update map name is cached in the instance and I don't see how changing it in the Preferences browser would either flush the default instance or update the default instance's updateMapName. Second, changing the update map name in the Preferences browser has no effect. This seems to be because there's a conflict between the instance creation message for an McMcmUpdater:
McMcmUpdater class>>updateMapName: baseName "Answer a new instance with a base update name baseName such as 'update' or 'update.oscog' "
^ self new updateMapName: baseName
and that this is used as the default setter for the preference:
McMcmUpdater class>>updateMapName "Name for update map, without version info"
<preference: 'Update map name' category: 'updates' description: 'Base name for the update maps' type: #String>
^UpdateMapName ifNil: ['update']
So I guess that we could rename the instance creation message to be forUpdateMapName: or simply nuke it. i.e. this
McMcmUpdater class>>default "The default instance for system updates. Uses a default update map name that may be set as a preference to enable a specific update stream for a repository."
^ self updaters at: self defaultUpdateURL ifAbsentPut: [self updateMapName: self updateMapName]
would become
McMcmUpdater class>>default "The default instance for system updates. Uses a default update map name that may be set as a preference to enable a specific update stream for a repository."
^ self updaters at: self defaultUpdateURL ifAbsentPut: [self forUpdateMapName: self updateMapName]
or
McMcmUpdater class>>default "The default instance for system updates. Uses a default update map name that may be set as a preference to enable a specific update stream for a repository."
^ self updaters at: self defaultUpdateURL ifAbsentPut: [self new updateMapName: self updateMapName]
and updateMapName: would become
McMcmUpdater class>> updateMapName: aString
UpdateMapName := aString
_,,,^..^,,,_ best, Eliot