[squeak-dev] "repository editions" is finally permanent!

Chris Muller ma.chris.m at gmail.com
Sun Oct 22 17:40:58 UTC 2017

The editions are gonna be in the "trunk" repository, but this feature
pulls the editions from the first MC repository listed in your
Monticello browser for that package.

So move the "trunk" repository to the top for that package; probably
you have the "squeak50" repository listed first, which won't have any
extra editions of that method.

The easiest way right now to do that for all packages is to *edit* the
"squeak50" repository to point to "trunk" instead; but you don't want
to collide with an existing name even temporarily, so it takes 3

  1) rename "squeak50" to "tempname"
  2) rename "trunk" to "squeak50"
  3) rename "tempname" to "trunk"

We really need a good way to do this better...

On Sun, Oct 22, 2017 at 11:50 AM, Bernhard Pieber <bernhard at pieber.com> wrote:
> Hi Chris,
> I want to try out your „repository editions“ feature in a current trunk image. However, I can’t find it. If I select SimpleBorder>>#initialize in a browser there is a menu item called „browse revisions“. However, when I select it I get an empty Revisions Browser. What am I missing?
> Cheers,
> Bernhard
>> Am 25.11.2016 um 03:40 schrieb Chris Muller <asqueaker at gmail.com>:
>> "repository editions" is finally permanent!   This function formerly
>> known as "mc history" appeared in 2013, but was clunky and unreliable
>> and I didn't have time to fix it.
>> Now with the recent server upgrade, I took the opportunity to upgrade
>> the image to modern trunk, running under spur, with integration of the
>> editions feature from directly within the image.  It is now finally a
>> permanent part of our source.squeak.org code repository.  (Go ahead,
>> try it!)
>> It self-hosts its own code within our "ss" project.  This is the exact
>> same code loaded by the Personal Squeaksource package.  Together can
>> provide editions for ALL code (trunk and proprietary).
>> The 'mc history' menu was recently renamed to "browse repository
>> editions" because its only "history" if its retrieving them from the
>> trunk repository.  It selects from the first repository in the
>> repository list of a package which can satisfy the editions request,
>> so if you put inbox above trunk then you'll be looking at a list of
>> "alternate editions" of that method (or class) existing in the Inbox,
>> not the "history" from trunk.  The new "demote to bottom" menu item
>> can be used to adjust the order of the list.
>> Nicolas wrote:
>>> so you mean that we now browse all editions, including those which are not
>>> in current MC version ancestors:
>>> - those in concurrent branches
>> Yes.  And, I think this was always supported (when it worked!) -- In
>> the server there is one big dictionary per Project (e.g., one for
>> "trunk", one for "VMMaker", one for "inbox", etc.).  The editions you
>> see in the list are instances of MCMethodDefinition or
>> MCClassDefinition which are keyed simply by their #description -- so
>> for method editions this is {className. selector. classIsMeta}, and
>> for class editions, simply its (class) name.  Its valued by an
>> OrderedCollection of all the editions.   (hmm, that key might be too
>> loose..)
>>> - those in other packages (if the method was moved from one package to
>>> another)
>> So, yes, as long as the other package is in the same repository,
>> they'll still be keyed by their same #description's.
>> On Tue, 1 Nov 2016, Hans-Martin Mosner wrote:
>>> Looks like there is a regression with raised and inset borders. The method #initialize in SimpleBorder sets baseColor to
>>> ... snip...
>>> Levente, the method is from April 2016 and carries your initials - do you remember what the motivation for this change was?
>> I'd been wanting encourage Hans-Martin to test this real-world use
>> case for "browse origin" for the last weeks, now we finally can!   :)
>>  1) Bring up SimpleBorder, select the #initialize method.
>>  2) Select "browse repository editions", a window with two editions
>> is presented.
>>  3) Select the one being asked about, "ul 4/7/2016 20:10" and select
>> "browse origin".
>> NOTE:  "browse origin" is actually just "the earliest-known Version in
>> which that definition appears."  If a proper repository with all
>> versions is kept, then it will be the origin.
>> In this case, it appears Levente wrote very good "why" reasoning in the notes.
>> _____
>> The timeouts should all be fixed.  Our code repository has never been
>> in a better shape than now.  Please feel free to use browse repository
>> editions and origins with confidence they will work!
>> Cheers!
>>  Chris

More information about the Squeak-dev mailing list