[squeak-dev] The Inbox: Monticello-bf.540.mcz

Bert Freudenberg bert at freudenbergs.de
Fri May 3 10:31:08 UTC 2013


On 2013-05-03, at 12:26, Frank Shearar <frank.shearar at gmail.com> wrote:

> Ah, thanks for that, Bert.
> 
> IIRC the search over the repository group in #parentSnapshot ought to
> search the default cache repository first, yes?

No. We specifically want to see the diff relative to the repository we are storing into.

- Bert -

> As a side note, we use delimited dynamic variables [1] a fair bit
> (MCRepositoryRequest in this case). I wrote the Control package to
> formalise this idiom. But it's quite an expensive technique, using a
> "deep binding" in Henry Baker's terminology [2]. But I don't _think_
> we can use shallow binding without VM support...? (Because doing so
> means associating variable->value bindings with ContextParts, and
> ContextParts are pretty special.)
> 
> [1] http://www.lshift.net/blog/2012/06/27/resumable-exceptions-can-macro-express-delimited-dynamic-variables
> [2] http://www.pipeline.com/~hbaker1/ShallowBinding.html
> 
> On 3 May 2013 11:17, Bert Freudenberg <bert at freudenbergs.de> wrote:
>> If you're wondering, most of the original diff comes from merging the latest MC improvements. Below is an edited version showing actual changes vs. Monticello-bf.532.
>> 
>> - Bert -
>> 
>> Bert Freudenberg uploaded a new version of Monticello to project The Inbox:
>> http://source.squeak.org/inbox/Monticello-bf.540.mcz
>> 
>> ==================== Summary ====================
>> 
>> Name: Monticello-bf.540
>> Author: bf
>> Time: 3 May 2013, 12:06:01.01 pm
>> UUID: 759525eb-5ca8-4ab2-9e4a-bddc7d0680dc
>> Ancestors: Monticello-bf.532, Monticello-fbs.539
>> 
>> This is my allow-partial-commits mod, improved to always diff to the target repository, and merged with the latest fbs.359 trunk version.
>> 
>> =============== Diff against Monticello-bf.532 ===============
>> 
>> Item was added:
>> + Notification subclass: #MCRepositoryRequest
>> +       instanceVariableNames: ''
>> +       classVariableNames: ''
>> +       poolDictionaries: ''
>> +       category: 'Monticello-UI'!
>> 
>> Item was changed:
>> ----- Method: MCSaveVersionDialog>>defaultExtent (in category 'as yet unclassified') -----
>> defaultExtent
>> +       ^ 600 at 600!
>> -       ^ 400 at 300!
>> 
>> 
>> Item was changed:
>> ----- Method: MCWorkingCopy>>parentSnapshot (in category 'private') -----
>> parentSnapshot
>> +       "prefer parent in selected repository"
>> +       MCRepositoryRequest signal ifNotNil: [:repo |
>> +               self ancestors do: [:ancestor |
>> +                       (repo versionWithInfo: ancestor)
>> +                               ifNotNil: [:ver | ^ver snapshot]]].
>> +       "otherwise, look in all repositories"
>> +       self ancestors do: [:ancestor |
>> +               (self repositoryGroup versionWithInfo: ancestor)
>> +                       ifNotNil: [:ver | ^ver snapshot]].
>> +       "otherwise"
>> +       ^MCSnapshot empty!
>> -       ^ self findSnapshotWithVersionInfo: (self ancestors
>> -               ifEmpty: [nil]
>> -               ifNotEmpty: [self ancestors first])!
>> 
>> Item was changed:
>> ----- Method: MCWorkingCopyBrowser>>saveVersion (in category 'actions') -----
>> saveVersion
>>        | repo |
>>        self canSave ifFalse: [^self].
>>        self checkForNewerVersions ifFalse: [^self].
>>        repo := self repository.
>> +       (self withRepository: repo do: [workingCopy newVersion]) ifNotNil:
>> -       workingCopy newVersion ifNotNil:
>>                [:v |
>>                (MCVersionInspector new version: v) show.
>>                Cursor wait showWhile: [repo storeVersion: v].
>>                MCCacheRepository default cacheAllFileNamesDuring:
>>                        [repo cacheAllFileNamesDuring:
>>                                [v allAvailableDependenciesDo:
>>                                        [:dep |
>>                                        (repo includesVersionNamed: dep info name)
>>                                                ifFalse: [repo storeVersion: dep]]]]]!
>> 
>> Item was added:
>> + ----- Method: MCWorkingCopyBrowser>>withRepository:do: (in category 'actions') -----
>> + withRepository: aRepository do: aBlock
>> +       ^aBlock
>> +               on: MCRepositoryRequest
>> +               do: [:req | req resume: aRepository]!
>> 
>> 
>> 
>> 
> 





More information about the Squeak-dev mailing list