( ESNUG 383 Item 11 ) ------------------------------------------- [11/28/01]
Subject: ( ESNUG 381 #7 ) CVS, Perforce, Synchronicity, RCS, ClearCase
> I am currently using ClearCase for revision control and I have used
> DesignSync from Synchronicity in the past. I had several technical
> issues with DesignSync such as a corrupted database and being unable to
> access the latest version of files. This was over a year ago. I am
> sure Synchronicity fixed these issues but it caused me to switch to
> ClearCase at the time.
>
> - Anders Nordstrom
> Nortel Networks Ltd. Ottawa, Canada
From: Kris Monsen <monsen@mobilygen.com>
Hi, John,
As a person who generally hates GUIs, because they generally waste more time
than they save, I had to respond to a couple of points. As long as a
revision-control product has the necessary features I'm fine with whatever
solution people are comfortable with, but here's my take:
1. CVS is free.
2. CVS supports hierarchy (don't even try using RCS).
3. CVS is stable:
- it has been and is being used by thousands of developers worldwide
- I've been using it at various companies since 1994 and don't recall
ever having a problem caused by CVS. (I've had people try to get
*around* CVS using some back-door hack, but not problems using CVS
commands themselves).
4. CVS does work across many platforms, including just about every
conceivable form of Unix as well as Windows.
5. CVS does have a GUI that runs on Windows, though I won't claim it's
the best because I haven't used it much. I prefer command lines.
6. CVS supports updating/checking out files based on dates. (see below)
7. CVS supports "merging" of changes by multiple people on the same
revision. Why are people so spooked by this? It is a totally
deterministic, well-known algorithm. If there are conflicts where
two people have changed the same lines, then it shows you both changes
in the merged files and requires you to manually resolve the conflict.
In contrast to another writer, we often have people making updates
to the same files (fixing or adding a feature in a test bench, e.g.).
It's a great time saver to be able to make the change without waiting
for someone else's lock.
8. I wrote up a little tutorial that gets most people going on CVS in
about a half hour. Occasionally someone needs a little further
explanation, but it hasn't been difficult to manage at all.
Tom Tessier wrote:
> For those of you familiar with Tags ask yourself this question: "What
> does it take to move a tag on a group of files with RCS/CVS/ClearCase
> and others?"
Tom should try using:
cvs tag -F <TAGNAME> <files_or_directory>
The -F is for force. Depending on exactly what Tom wanted to do, there are
a couple of other options you can specify. The CVS man page is not that
difficult.
However, I should say that it's usually a bad idea to move tags. You may
*think* that you want to move a tag to a new/different version of a file,
but it's very likely that you, or even worse, someone else will need the
original group of files later. By moving the tag, in effect you're erasing
some of your history. (No, you're not losing the revision history of
individual files, you're losing the "group history" of what you had tagged;
someone may have used that tag already for checking out a release.)
It is far better simply to make a *new* tag for the new versions of file
you have. For example, instead of using a single tag:
GOLDEN_RTL
and moving it every time a file changes, instead you should use:
GOLDEN_RTL_1_0
GOLDEN_RTL_1_1
...
GOLDEN_RTL_2_0
etc.
Tom also wrote:
> Another problem that occurs is "It worked last week!" How do you get
> back to that point? In SOS it has the ability to back up to a date and
> time. This is very powerful in a multiple person environment.
So does CVS.
cvs update -D "2 days ago" ...
cvs update -D "01/20/2001 15:30" ...
Very nice.
Sorry I got so long-winded. My character flaw.
- Kris Monsen
Mobilygen Corp. Santa Clara, CA
---- ---- ---- ---- ---- ---- ----
From: Shiv Sikand <sikand@matrixsemi.com>
Hi, John,
I have been obsessed with the issue of Software Configuration Management
(SCM) software for hardware design for about 5 years now. I've generally
worked in the microprocessor/ full custom arena so managing physical
databases has always been an interesting challenge.
A very important aspect of SCM is to have an integrated system for both
hardware and software so that all aspects of the design can be
represented through a common state point. In 1998 I started work on a
Cadence Integration with Perforce while working at SGI. This integration
is now available as Open Source under the BSD license thanks to SGI,
Cadence and Perforce.
I presented a paper about the benfits of Perforce for hardware design
and the Open Source Cadence-Perforce Integration at the Cadence Users
Group meeting and the Perforce User Conference last year. The paper is at:
http://www.perforce.com/perforce/conf2000/shiv/shivsikand.pdf
As described in the paper, Perforce contains key features not found in
any other tool. The most significant one of these is InterFile Branching
which allows a very powerful parallel and incremental 'branch and replace'
development approach to be applied to physical databases.
The code and some other publications on the subject can be found on the
Perforce Public Depot.
http://public.perforce.com/public/perforce/cdsp4/index.html
I'm always on the lookout for volunteers to help out in this area!
CDSP4 is currently in use at SGI, Velio Communications, Afara WebSystems
and Matrix Semiconductor. Perforce is also deployed quite heavily at
nVida and MIPS. I know that there are other sites using Perforce for
hardware design but do not have a list offhand. I understand that there
are currently over 50,000 Perforce Users worldwide. Their product,
support and pricing structure is excellent. And of course, once you have
a Perforce license, CDSP4 is free. :-)
- Shiv Sikand
Matrix Semiconductor
|
|