Monticello bugfixes

Chris Muller afunkyobject at yahoo.com
Tue Nov 9 05:47:36 UTC 2004


> No, you can't do this by saving all the dirty packages. But you can do 
> it by saving the top-level packages - that is, the packages that you'd 
> like to reconstruct in another image. Is there some reason this isn't 
> adequate?

It probably would be if saving top-level packages automatically saved the
entire tree, it does not seem to.  In my case, saving the top-level packages is
not adequate because the intermediate packages ("B") referencing "C" do not get
saved when saving the top-level packages ("A").  So if I have clean A, B and C
(per our same example), make a change to C, then save A (or save C followed by
saving A) *without* ever resaving B and then try to load A into a fresh image,
Monticello reports "Can't find dependency".

To avoid this, I have to manually save not just top-level packages, but *every*
"intermediate" package that needs the changed prereq directly or indirectly (my
B's).  This is too many to keep track of manually, and cumbersome mechanical
work to scroll/select/save/accept for 10 "clean" packages if I even could track
it accurately on my own.

> Consider this example, again using packages A, B and C. What if you 
> make a change to C, then save the image and come back to it later. You 
> notice that A and B are dirty, but don't remember changing them, so you 
> click the Changes button to see what has changed.  Not only won't there 
> be any changes, but the package will now be marked clean.

Sorry to expect so much, but the view I'm supporting contends that the prereq
versions should be considered part of the package, therefore pressing Changes
would include the prereqs in the diff'ing process.

> ... Do you have a situation where saving the 
> top-level package isn't enough to reproduce the state of the code? If 
> so, perhaps we can work out a solution that doesn't involve changing te 
> semantics of working copies.

Yes, my sitation comes up every time I save a new version of Magma.  I would
very much like to have *some* kind of solution because right now it hurts. 
Maybe I'm doing something wrong, can you help?

Here's something reproducible in five minutes.  I'm doing my testing with
version 218 of Monticello:

  - Load Magma
  - Make a change to any method in the class MaObjectSerializer.
  - Save my top-level package, "Magma tester"

Now try to load that newly saved version of MagmaTester into a clean image. 
Monticello reports "Can't find dependency."  Owww..





More information about the Squeak-dev mailing list