On Mon, Feb 21, 2000 at 09:47:21AM -0500, Noel L Yap wrote:
> Possibly off topic.  Take a look at
> http://www.enteract.com/~bradapp/acme/plop98/scm-pats-intro.html, you might get

That URL should probably be changed to:

  http://www.enteract.com/~bradapp/acme/branching

One "pattern" the authors and I had debated whether or not to include
in that paper was something I called an "export lock". When a developer
merges the latest stuff from the codeline into their sandbox, we called
that a "sync" or  "refresh" or an "import" or "rebase" with the codeline.
When a developer merged their changes out to commit them to the codeline,
we called that an "export" or "commit" or "publish" operation.

I once worked on an SCCS-based system that had an "export lock" for
each codeline. When you started export your changes by merging them to
the codeline, the "export" command would first try to acquire an export
lock on your behalf. If it couldn't, you had to wait till it was free. If
it could get the export lock, then you merged all your changes, and then
released the lock.

If something went awry or needed further investigation before you finished
the export, then you could do one of two things: (a) you could hold onto
the export lock while you resolved your issues; thus you weren't trying
to hit a moving target (but might have to fend off angry co-workers if
you didn't resolve things in a timely manner); or (b) you could decide
to relinquish the export lock manually, and let others have a chance
while you resolved your conflicts (but then once you were ready to try
exporting again, there might be more changes to reconcile against).

Note that this was an export-only lock. It did not stop others from
checking out files, nor did it stop them from checking them back in on
their own branch, but no one else could checkin to the codeline branch
while you held the lock.

Later, when trying to "excavate" recurring SCM patterns, I found that
this sort of "export lock" was a commonly used best-practice in many other
shops doing parallel development with a wide variety of differing tools.

-- 
Brad Appleton <[EMAIL PROTECTED]> http://www.enteract.com/~bradapp/
  "And miles to go before I sleep." -- Robert Frost

Reply via email to