[Seaside] monticello patch question

Colin Putney cputney at wiresong.ca
Mon Oct 18 03:08:42 CEST 2004


On Oct 17, 2004, at 8:51 PM, James Megquier wrote:

>>> p.s.: Once I've checked in these changes to my local Monticello 
>>> repository, (as, say, Seaside-2.5b5-jm.1), is there an easy way to 
>>> fileout a patch from a previous version?
>>
>> What do you mean by "patch"?
>
> Ah, I should have been more clear.  I meant, "some kind of diff that's 
> easy to post to an email discussion."  In unix-land, I'd check in the 
> new changes (or not) and run a diff using CVS or Subversion, resulting 
> in a text-friendly patch.  Is there a similar beast for Monticello, or 
> is there some other central concept around the idea of differential 
> patches?  Or is that what a changeset is for?
>
> (btw, the .mcd for the two-line change I posted is like 27k, which 
> seems excessive [or is that because of the binary stuff related to 
> UnstableSqueak?])

A ChangeSet is very similar to a unix patch. However, the usual way of 
sharing changes among Monticello users is to send a complete version, 
either in either mcz or mcd form. If you've got the infrastructure for 
it, I find the best way is to just make my repository publicly readable 
via HTTP, and just post a link to the file.

The reason an mcd takes up 27K for a two-line change is that it's got 
much more information that an equivalent unix-style patch. First, 
Monticello doesn't to textual operations when diffing and merging, so 
at a minimum you've got to include  the complete source to the affected 
method. Second, a version also contains all the metadata about it's 
creation - date, time, author, log message etc. Finally, it also 
includes a complete description of its ancestry - a record of all the 
previous versions it is derived from, going back to the first commit of 
the package.

This means that "applying a patch" in Monticello is a much more robust 
operation in than in unix - it's actually a full merge. The price we 
pay for that, of course, is the extra verbosity of patches.

Colin



More information about the Seaside mailing list