[p4] Re: Perforce Configurations

Chuck Karish chuck.karish at gmail.com
Sat Mar 19 11:29:59 PST 2005

On Fri, 18 Mar 2005 09:20:22 -0500, Paul Andrei <pandrei at foliage.com> wrote:
> In order to completely specify a file/component version in Perforce, one
> has to provide its space-time coordinates: the depot path is the
> location (space coordinate) while the revision/change/label is the time
> coordinate.

You seem to have fallen prey to the CM fallacy: the notion that source
control can be implemented by simply selecting the appropriate
versions of different files or components from the ongoing stream
of changes.

For the most part the real world doesn't work that way.  The idea of
making a link to a label breaks down when the release represented
by the label needs a bug fix and the fix isn't appropriate at the head.

The fix has to be added to the label as references to branched
versions of the modified files (or to a version of each of these
files that is itself a server-side symbolic link).  If the first option is
chosen all client specs on the main branch and/or branch specs
for other branches have to be adjusted.  Eitther way, the result will
come to resemble a mass of pasta that has been allowed to sit for
too long after draining.

> The Perforce clientspecs are purely space mappings. They cannot provide
> any time information. That has to come from some form of executable script.
> So right now, the configuration information has to be split between
> clientspecs and executable scripts. Imagine now a team of 50 people
> simultaneously working on 10 configurations.

I don't have to imagine it.  I see it every day.  Except that our scale
is more than an order of magnitude bigger than yours in both

> It takes discipline and
> effort from everyone to stay up-to-date. A solution built into Perforce
> is preferable.

Your tools aren't good enough (which is not to say that ours are.)
If the tools are sufficiently complete that developers can rely on them
as their primary interface to the souce control facilities they extend
(generating proper client specs) it won't take an extraordinary effort for
developers to get the code they need.

Chuck Karish   karish at well.com   (415) 317-0182

More information about the perforce-user mailing list