- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
- "http://www.w3.org/TR/REC-html40/strict.dtd">
- <HTML>
- <HEAD>
- <TITLE>SCM Evaluation</TITLE>
- <META NAME=AUTHOR CONTENT="Mike Meyer">
- </HEAD>
- <BODY>
- <H1>SCM Evaluation</H1>
-
- <P>In choosing a SCM for this client, the primary requirements were:</P>
-
- <OL>
- <li>It works well in a distributed environment.</li>
- <li>There is a server available for Solaris.</li>
- <li>There are clients for Solaris, Windows and the Mac.</li>
- <li>There is a GUI interface for Windows.</li>
- <li>The administrative and hardware costs are acceptable.</li>
- </ol>
-
- <p>Secondary requirements included a WWW interface for examining
- documents and some form of change request tracking.</P>
-
- <P>After considering several different systems, the Perforce SCM tool
- was selected as the most likely candidate. I installed the server on
- one system, the client on a few others, and used it for some simple
- projects. It worked quite well in those tests. While I encountered
- problems, the Perforce tech support group resolved them quite quickly,
- including providing client libraries for a new platform on short
- notice. Based on this, I recommend that this client install Perforce
- on one of their servers, and start using it on a test basis for parts
- of the existing web content.</P>
-
- <H2>Systems Considered</H2>
-
- <P>A search - including several web search engines and querying
- developers using these systems - turned up several systems to check
- on. They are presented, with a quick overview, in alphabetical
- order.</P>
-
- <H3> BitKeeper</H3>
-
- <P>BitKeeper would have been the most promising of the systems, but
- was not yet available for production use. BitKeeper designers targeted
- OSS projects. The designers assume distributed developers, with the
- number of developers running from a few to thousands.</P>
-
- <H3>ClearCase</H3>
-
- <P>The most capable system considered was ClearCase. It is also very
- expensive in terms of administration and hardware costs. The consensus
- of the people using ClearCase was that it generally required both a
- dedicated person and a dedicated system. These costs are unacceptably
- high for a SCM for this client.</P>
-
- <H3>CVS</H3>
-
- <P>CVS was the second most promising system examined, especially
- considering the pricing. However, I could not find a Windows 95
- client. Further, the <EM>module</EM> system CVS uses for labeling
- parts of a source tree complicates Unix client configuration. As a
- final strike, the job tracking system consists of programmatic hooks
- to connect CVS to an external job tracking system.</P>
-
- <H3>Perforce</H3>
-
- <P>Perforce is the most promising of the systems considered, meeting
- all of the primary and secondary requirements. I installed and used
- the server and client software for some small projects for evaluation
- purposes. The details on this can be found below.</P>
-
- <H3>PRCS</H3>
-
- <P>PRCS does not have support for a distributed work environment, and
- is thus totally unsuitable for this client. Version 2.0 is supposed to
- support a server that remote clients would use to reach the source
- code.</P>
-
- <H3>VSS</H3>
-
- <P>Visual Source Safe has marginal support for a distributed work environment
- Support for clients other than Windows is from third parties, which is a rich
- source for version conflicts. I heard numerous reports of VSS losing files.</P>
-
- <H2>Evaluation of Perforce</H2>
-
- <P>Obviously, the first step was to install Perforce. They distribute
- the production software with a <EM>default</EM> license that allows
- two users and two <EM>workspaces</EM>. The installation consisted of
- copying the two binaries into place, and arranging for the server
- software to run at boot time. Configuring the Unix client software
- consisted of setting a few environment variables to tell it where the
- server was, and what my preferences are. This took no more than a few
- minutes, total.</P>
-
- <P> For the next step, I took a small project - just a few files - and
- put it under the control of Perforce. I then continued working on the
- project, using the Perforce commands where appropriate to notify the
- Perforce system about the state of the work. While this wasn't
- unobtrusive - the very nature of an SCM requires some intrusion - it
- was about as painless as I could imagine it being. When I needed to
- edit a file, I issued one command. If I forgot that step, the system
- prevented me from writing on the file, as the file was write-protected
- at the system level. After informing Perforce that I wanted to edit
- the file, it was writeable. When I finished editing and testing the
- file, I submitted the change too Perforce. It started an editor (that
- I specified at configuration time) on a form that had fields to state
- the files that had changed, and what the changes did. This was the
- least painful SCM system I've ever used.</P>
-
- <P>For the next step, I moved to a system elsewhere on the internet,
- and installed the client there. I then repeated the above process,
- running the client and server on systems separated by of two
- firewalls. Excepting the initial setup - which involved copying
- multiple files - the response was not noticeably slower than doing the
- work remotely.</P>
-
- <P>As a last test, I changed work modes. I added the files on the
- remote server to the local workspace, and started working on them
- there. After I was done with a change, I submitted the change to
- Perforce, moved back to the remote system, and synchronized that
- workspace with Perforce. While not quite as painless as doing things
- on only one system, it still worked well. I don't see that this would
- have been different from trying to work in this way without an
- SCM.</P>
-
- <P>To test the suitability of the Web interface to Perforce - known
- as <EM>WebKeeper</EM>, I installed that Apache module on an existing
- web server. This proved more difficult, as it required software for a
- platform they didn't support. I went to Perforce's tech support - via
- electronic mail - and asked about this. After discussing the various
- options, they provided a new version of the library about 24 hours
- after we identified the problem. This is typical of my interactions
- with the Perforce tech support group - timely, accurate response that
- solved the problem.</P>
-
- <P>WebKeeper worked as advertised. It might take a little bit of work
- to make it fulfill all our needs. However, if this proves difficult,
- or impossible, this is not a critical requirement.</P>
-
- <H2>Recommendation</H2>
-
- <P>This evaluation shows Perforce as an excellent fit for this
- project. I recommend setting up a small project that involves two
- people on two platforms under Perforce, as described in the main body
- of the document.</P>
-
- </BODY>
- </HTML>