Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Jul 1999 14:58:35 -0600
From:      Wes Peters <wes@softweyr.com>
To:        Maury Markowitz <maury@OAAI.COM>
Cc:        advocacy@FreeBSD.ORG
Subject:   Re: Source control packages
Message-ID:  <378F9CFB.57042F1E@softweyr.com>
References:  <199907151642.MAA01326@OAAI.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
Maury Markowitz wrote:
> 
>   I know this isn't really on topic, but it does seem to be the best
> place to ask considering the other threads.
> 
>   I'm currently using CVS.  I don't like it.  The reasons I don't
> like it are...
> 
> a) branching and merging don't seem to work for me.  This is
> primarily a problem with diffing as far as I can tell, but I have to
> go in and hand edit practically every file I've modified from a
> branch.  It's also far too complex an operation, and I find the whole
> tagging concept rather confusing.

Perforce is better at this than CVS, and much faster, but the unerlying
complexity is still there.  Merging a branch back into a moving code-
line is hard work because difficult things are being done.  Perforce
does give you nway merging capabilities, that helps.  Say you've
got a main development line and a branch to implement some hairy
new feature.  Once the hairy new feature is done, you're ready to
integrate it back into the main branch.  Rather than just integrating
away, and potentially breaking the main branch for a long time, you
integrate from the main line to branch, make the branch work, then
integrate back to the main line.  This means your integration into
the main line is much smaller (and therefore less failure prone)
than integrating the whole mess from the start.

> b) merging two edits on the same branch rarely works.  Again this
> seems to be a diff problem, but there's cases where the only thing
> that changed was the number of spaces in a blank line, and this has
> caused huge blocks of my file to be marked as conflicting.

As in "cvs udpate" leaves <<<<<< doo-doos in your source?  That's
a feature of just about any concurrent system; the diff programs
aren't smart enough to interleave your changes with another users
changes other than on a line-by-line basis.

Visual merge tools, especially those that run in an editing environment,
can help here.  I dig emacs ediff mode, but there are alternatives.

> c) there's no way to do "stamping".  For instance when I'm about to
> do a release build I'd like some way to stamp the repository saying
> "I've used this version to make my 1.1 build".  Instead it does this
> the other way around, putting crud in your files that YOU can pull
> out.

Huh?  You missed "cvs rtag"?

> d) it puts crud in my files!
> 
> e) it puts crud in my directories.

Perforce does none of the above, it puts the crud in the database
on the server.  You do have to crud up your environment a little,
but it's pretty livable.

> f) having the no checkin/checkout is pretty cool, but there are some
> times where this is exactly what you want to do.  I'd prefer to have
> this as an option (locking).
> 
>   Any suggestions people?  Is perforce the way to go?

Not if you want locking, Perforce don't play that (stupid, time-wasting,
productivity robbing) game.

-- 
            "Where am I, and what am I doing in this handbasket?"

Wes Peters                                                         Softweyr LLC
http://softweyr.com/                                           wes@softweyr.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-advocacy" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?378F9CFB.57042F1E>