Archive of UserLand's first discussion group, started October 5, 1998.

Re: Distributed Software Development

Author:Jacob Savin
Posted:10/11/1999; 1:33:33 PM
Topic:Today's scriptingNews Outline
Msg #:11944 (In response to 11904)
Prev/Next:11943 / 11945

Webtechniques: Distributed Software Development. "To work on a file, one needs to check it out, just like taking a book out of a library. Once changes are complete, the file is checked back in, accompanied with brief comments describing the changes. A checked-in file is immutable, and can't be changed again without checking it out."

I strongly recommend people interested in SCM look at Perforce. It's in use by, among others, Adobe. Their model, though slightly more difficult to understand than the library metaphor described in the WebTechniques article, is such that more than one person can make changes to a single file at the same time. The Perforce server knows how to automatically merge any text-based changes, unless they directly conflict, in which case the user who checks in the file second has to "resolve" the changes. This works very well when many people are developing a single product, or working on a single project, because it minimizes the conflict between different people working in the same area. There are many other advantages as well, but having looked at many SCM systems, Perforce is by far the best one I've used.

I think it would make a very interesting model for a possible future version of WebEdit (and RootUpdates?). Unlike WebEdit, it keeps a file's history, and will allow one to "revert" a file, a set of files, or the whole development environment, to its state at any time. It also manages "branches" which are used to allow ongoing and possibly destabilizing changes to be made without adveresely affecting an end-user. This is a little like using a staging server and a live server to insulate users from changes in a website until they're fully baked, but what's different is that any user may create a branch, and the SCM system can keep track of an arbitrary number of branches. Also, since the client and server only exchange diffs of files (the changes since the last revision), communication is really fast.

Standard disclaimers apply. I'm not an employee, just a very happy user.


There are responses to this message:


This page was archived on 6/13/2001; 4:53:01 PM.

© Copyright 1998-2001 UserLand Software, Inc.