Monticello 2 question (sort of)
J J
azreal1977 at hotmail.com
Tue Apr 24 04:43:10 UTC 2007
Hi all,
I was just thinking about Monticello 2 and wondering what the strategy for
creating revisions is.
In darcs (and afaik all modern revision systems) the way it works is, I have
a local repository and there can be any number of remote repositories. So
if we had one central repository called e.g. SqueakSource, after the initial
push, my local repository is in sync with SqueakSource. I can now make
changes and publish them locally. If I push these changes to the
SqueakSource repository all the system has to do is see if the revision has
not changed, and if it hasn't apply all my change sets to get back in sync
and so on.
It strikes me that Squeak can do this very easily. We already have change
sets that actually seem very good. So we could do the same thing; when I do
an initial publish to the central repository I am in sync. Now the system
creates a new change set for all changes I do from this point forward.
Later on when I try to sync again, if the version number has not changed the
system need only apply the change sets I have made since the sync took
place. If the version number has changed, a simple conflict resolution can
be done.
The key point here is; it looks to me like the current Monticello is
actually scanning the whole image to find out what has changed. This is not
necessary as all that information and more can be retrieved via the existing
change set mechanism. The only change would need to be that after you
publish to a repository, Monticello needs to rename your "current" change
set. If it doesn't then the next time you publish it wont see any change
sets that aren't present in the repository and decide no work was done. Or
it can look if the dates are different, but then it would have to scan the
whole change set to see what is different. It saves processing by simply
controlling the change set names.
Another advantage is, we can easily have the darcs ability to only apply
certain change sets. Using the change set tools in the image I can create
new change sets and push different changes into those, so that if I made a
big change I can split it up into several different change sets. Then I
would have the ability to say e.g. only publish the first one and the last,
but skip the middle.
What do you all think? Is this already what it's doing and I just didn't
notice? Thoughts?
Thanks,
Jason
_________________________________________________________________
Download Messenger. Join the im Initiative. Help make a difference today.
http://im.live.com/messenger/im/home/?source=TAGHM_APR07
More information about the Squeak-dev
mailing list
|