A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-mva.668.mcz ==================== Summary ==================== Name: Monticello-mva.668 Author: mva Time: 11 April 2017, 1:57:01.468779 pm UUID: c484f301-b534-40c5-8b0f-b8c1c2bc4a7c Ancestors: Monticello-nice.667 Stop infinite recursion when trying to 'Save' a new version or 'Update Squeak' after having set 'store diffs' on 'package-cache' =============== Diff against Monticello-nice.667 =============== Item was added: + ----- Method: MCDiffyVersion>>asDiffAgainst: (in category 'converting') ----- + asDiffAgainst: aVersion + aVersion info = self baseInfo + ifTrue: [^ self]. + ^ super asDiffAgainst: aVersion! |
This patch,
http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-April/194136.html makes it possible to use 'store diffs' on the 'package-cache' repository. After you have yellow-clicked the 'package-cache' repository in Monticello Browser and selected 'store diffs': - without this patch, when you try to click the 'Accept' button in the 'Save' dialog in Monticello, the image will go into an infinite recursion. - without this patch, when you try to click 'Update Squeak' in the Squeak menu, the image will go into an infinite recursion showing 'Diffing...'. Best Regards, Milan Vavra |
Hello Milan
Thanks for posting this enhancement to the inbox. Could you please explain why I would want to 'store diffs' on the _package-cache_ ? Regards Hannes On 4/11/17, Milan Vavra via Squeak-dev <[hidden email]> wrote: > This patch, > http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-April/194136.html > makes it possible to use 'store diffs' on the 'package-cache' repository. > > After you have yellow-clicked the 'package-cache' repository in Monticello > Browser and selected 'store diffs': > > - without this patch, when you try to click the 'Accept' button in the > 'Save' > dialog in Monticello, the image will go into an infinite recursion. > > - without this patch, when you try to click 'Update Squeak' in the Squeak > menu, the image will go into an infinite recursion showing 'Diffing...'. > > Best Regards, > > Milan Vavra > > > > > -- > View this message in context: > http://forum.world.st/The-Inbox-Monticello-mva-668-mcz-tp4941777p4941780.html > Sent from the Squeak - Dev mailing list archive at Nabble.com. > > |
Hi Hannes,
When saving a new version of a Monticello package into a repository, you have an option of saving either as a snapshot - a file with an .mcz extension or as a diff - a file with an .mcd extension. When you select 'store full versions' you opt for saving as a snapshot. When you select 'store diffs' you opt for saving as a diff. Snaphots store the whole state of the system category corresponding to the package's name. Unzip an mcz, find source/snapshot.st. Look at it in FileList to see what I mean. Think of them as a Full Backup of the package. They store the whole state of the version of the package at the moment in time they were saved. Diffs store only enough to be able to patch some previous version, the one they were made against. Unzip an mcd, find old/source.st and new/source.st. Look at them in FileList. Think of them as Differential Backups of the package. They only contain the differences of the version they represent against their base version at the moment in time they were saved. As such, they have different properties. Mczs are self contained. One mcz is enough to restore the state of the package. Mcds are not self contained. An mcd relies on availability of the version they were made against to reconstruct the snapshot they represent. A string of mcds must end with an mcz at some point, as ancestor. If you unzip an mcz outside of Squeak, it is difficult to see what has changed because all the classes and methods of the package are saved in it - see snapshot/source.st. You can only make sense of it by looking at it in Monticello Browser in Squeak and compare it against another version. If you unzip an mcz outside of Squeak, it is still possible to see what has changed by looking at the old/source.st and new/source.st. Because they contain the whole state of the package they represent, mczs are big. Because they contain only what has changed since the version they have as their base, mcd are much smaller. For example if you want to make small experimental changes to the Morphic package, a snapshot of Morphic, 'Morphic-mt.1296.mcz' is 1,726,488 bytes long. This means that you will quickly fill up many megabytes of disk space if you save a few versions as mczs. My other contribution regarding mcds http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-April/194057.html makes mcds even smaller in a backwards-compatible way. See the discussion there. Best Regards, Milan |
Free forum by Nabble | Edit this page |