[squeak-dev] The Inbox: Monticello-mva.668.mcz

Milan Vavra vavra_milan at yahoo.com
Tue Apr 11 14:34:53 UTC 2017


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




--
View this message in context: http://forum.world.st/The-Inbox-Monticello-mva-668-mcz-tp4941777p4941786.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.


More information about the Squeak-dev mailing list