DVS (was: Re: Refactoring Browser...)

Avi Bryant squeak-dev at lists.squeakfoundation.org
Sat Oct 12 18:51:57 UTC 2002


On Sat, 12 Oct 2002 danielv at netvision.net.il wrote:

> Ok, I had a look. A few comments/questions -
>
> First, it's making me seriously consider using sourceforge cvs to manage
> the Refactoring Browser code.
>
> Second, something a bit funny - I filed out the RB, compared, and while
> it was processing, I remembered I hadn't changed anything. Then when I
> came back, it had found differences. Interesting...

Differences in methods?  Usually what it finds is things like the doits to
create system categories and to initialize classes, which generally want
to happen whenever you fileIn.

> Third, your two rules of when to filein/out sound very simple to enforce
> in code, using OSProcess.

Yes, I had some code to do this at some point.  The problem is that this
only works for the simple cases - when there is a conflict, for example,
it doesn't work as well, because the process becomes much more
complicated.  Eventually, I think this could all be controlled in the
image, but it'll be a bit of work.  It's also not portable to, eg,
Windows, where the command line CVS client isn't as common.

> Fourth, I didn't understand the critical scene, where Alice integrates
> her change with Bobs fix. Alice tries to commit her code, get notified.
> She updates. At this point -
> * does cvs replace her file with Bobs? does it create a merged version?

It creates a merged version.

> * What happens if she updates before filing out her changes?

The file on disk will be replaced with Bob's version (since as far as CVS
knows, she has made no changes, and Bob's is the most up to date).  At
this point, merging is difficult - if she filed out it would replace Bob's
changes entirely.  The only thing to do is to rollback the update (perhaps
by editing CVS/Entries), fileOut, and then update again.

> * Why would she want to reconcile differences with a text editor - isn't
> that what DVS is good at? (show the difference, user edits, file in a
> hand picked modified change set)

When CVS detects a conflict, it inserts both versions into the file at
once, marked off by <<<<<<<<<<<< lines and the revision numbers.
Obviously, this won't file in very well; Alice has to resolve the
conflicts (deleting the incorrect version and the <<<<<<<< markers) before
DVS can deal with it.

Cheers,
Avi




More information about the Squeak-dev mailing list