[Q] Package dependencies in Monticello

Chris Muller afunkyobject at yahoo.com
Thu Nov 4 18:57:45 UTC 2004


Lex wrote:

> I think the behavior is simply not what it should be.  If you save a
> package, then I don't see why it should not also save all of the
> dependencies, including indirect dependencies.  Monticello seems to be
> saving the immediate dependencies, but simply not recursing.

On the contrary, I believe Monticello *does* recurse all the way down when
saving, and it correctly skips packages that have not changed.  The trouble is,
not all of the packages which are actually dirty were marked dirty, so they are
not being saved.

Monticello defines a *version* as a declared set of code elements PLUS a set of
specific versions of required packages (each with their own UUID).  The image
can only contain a single version (a.k.a., "working copy") of any particular
package.  Once one of these required packages is changed, it is no longer that
same version and, therefore, neither can be its parent package be regarded as
the same version.  They are both dirty, although only the one whose actual
*code* was changed is currently marked dirty.

I've attached a simple fix for this.  Would you or Avi please take a look at
the attached changeset and let me know what you think.  I believe this fix will
allow the same package to be required by multiple other packages
simultaneously, with no ambiguity regarding what versions are now dirty and
need to be saved.

Now, granted, the potentially confusing part of this is, you can make a change
to one method and suddenly 3 packages get marked dirty (*) in the Monticello
browser.  But it should make sense once the user expands the tree to see the
dependencies.  

Thank you,
  Chris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MonticelloMarkModifiedEnhancement.1.cs
Type: application/octet-stream
Size: 810 bytes
Desc: MonticelloMarkModifiedEnhancement.1.cs
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20041104/433d0086/MonticelloMarkModifiedEnhancement.1.obj


More information about the Squeak-dev mailing list