<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The hell of CVS</title>
	<atom:link href="http://kernelmustard.com/2006/06/20/the-hell-of-cvs/feed/" rel="self" type="application/rss+xml" />
	<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/</link>
	<description>Reflections on software, security, and more by Steve Dispensa</description>
	<lastBuildDate>Wed, 10 Mar 2010 09:44:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: strik</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-352</link>
		<dc:creator>strik</dc:creator>
		<pubDate>Fri, 23 Jun 2006 07:51:12 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-352</guid>
		<description>@Michael Kohne:
The Source Server from MS has support for CVS, at least for some beta-testers. I am using it with success.

Of course, for CVS users, going to SVN might be the easiest path, as SVN is very similar to CVS in its usage (I am speaking about command-line here, I don&#039;t use anything else for it).</description>
		<content:encoded><![CDATA[<p>@Michael Kohne:<br />
The Source Server from MS has support for CVS, at least for some beta-testers. I am using it with success.</p>
<p>Of course, for CVS users, going to SVN might be the easiest path, as SVN is very similar to CVS in its usage (I am speaking about command-line here, I don&#8217;t use anything else for it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wayne Schroeder</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-351</link>
		<dc:creator>Wayne Schroeder</dc:creator>
		<pubDate>Thu, 22 Jun 2006 19:45:25 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-351</guid>
		<description>So basically, it was pilot error.  I&#039;ve never experienced a cvs merge error when following one simple rule:  When you merge branch A into brach B, when done, go back to branch A and make a tag that denotes the last place you merged it into branch B.  Then, the next time you need to merge the new changes in branch A into branch B, you can update to branch B, then cvs update -P -d -j A_merge_B -j A, and all will be quite happy.  Of course, after this merge, you need to go to your A checkout and tag it again (perhaps with a new tag or -F) to denote a new merge point FROM branch A into branch B.  Rinse, repeat.</description>
		<content:encoded><![CDATA[<p>So basically, it was pilot error.  I&#8217;ve never experienced a cvs merge error when following one simple rule:  When you merge branch A into brach B, when done, go back to branch A and make a tag that denotes the last place you merged it into branch B.  Then, the next time you need to merge the new changes in branch A into branch B, you can update to branch B, then cvs update -P -d -j A_merge_B -j A, and all will be quite happy.  Of course, after this merge, you need to go to your A checkout and tag it again (perhaps with a new tag or -F) to denote a new merge point FROM branch A into branch B.  Rinse, repeat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Kohne</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-350</link>
		<dc:creator>Michael Kohne</dc:creator>
		<pubDate>Thu, 22 Jun 2006 00:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-350</guid>
		<description>One thing to note: Microsoft&#039;s Source Server (the source code equivalent to a symbol server) presently on has support for SourceSafe, Perforce and Subversion. If you think you might want to fool with a source server, you&#039;ll have to consider that in your deliberations.

I can recommend Seapine&#039;s Surround SCM, for at least mid-size projects (that&#039;s all we do, nothing really huge). It&#039;s multi-platform, and it generally just works.

I love CVS, but I have to say that I wouldn&#039;t choose it anymore. It&#039;s file based nature and the fact that it can&#039;t remember the base of a branch on it&#039;s own just seem too limiting to me. I want to be able to rename and move files without loss of history, and I sure don&#039;t want to have to remember to tag branch bases myself (I&#039;m bad at remembering to do extra stuff).

Good luck!</description>
		<content:encoded><![CDATA[<p>One thing to note: Microsoft&#8217;s Source Server (the source code equivalent to a symbol server) presently on has support for SourceSafe, Perforce and Subversion. If you think you might want to fool with a source server, you&#8217;ll have to consider that in your deliberations.</p>
<p>I can recommend Seapine&#8217;s Surround SCM, for at least mid-size projects (that&#8217;s all we do, nothing really huge). It&#8217;s multi-platform, and it generally just works.</p>
<p>I love CVS, but I have to say that I wouldn&#8217;t choose it anymore. It&#8217;s file based nature and the fact that it can&#8217;t remember the base of a branch on it&#8217;s own just seem too limiting to me. I want to be able to rename and move files without loss of history, and I sure don&#8217;t want to have to remember to tag branch bases myself (I&#8217;m bad at remembering to do extra stuff).</p>
<p>Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Outlaw</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-349</link>
		<dc:creator>Jeff Outlaw</dc:creator>
		<pubDate>Wed, 21 Jun 2006 21:12:59 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-349</guid>
		<description>At Reuters where I work we are converting from SourceSafe to Subversion.  While I am by no means an expert I like it alot.  From co-workers who have used CVS in the past they seem to be able to grasp it pretty quickly.  On the negative side, two issues.  One this is a hosted solution so beware that there is a possibility of someone else &quot;eyeing&quot; your code.  Two, while I know for a fact that you guys are NOT using VMS our current version of Subversion and Tortoise SVN do NOT support VMS.  We have even had difficulty getting it play well with Pathworks.

On the Windows and Linux side of things it works great.</description>
		<content:encoded><![CDATA[<p>At Reuters where I work we are converting from SourceSafe to Subversion.  While I am by no means an expert I like it alot.  From co-workers who have used CVS in the past they seem to be able to grasp it pretty quickly.  On the negative side, two issues.  One this is a hosted solution so beware that there is a possibility of someone else &#8220;eyeing&#8221; your code.  Two, while I know for a fact that you guys are NOT using VMS our current version of Subversion and Tortoise SVN do NOT support VMS.  We have even had difficulty getting it play well with Pathworks.</p>
<p>On the Windows and Linux side of things it works great.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dispensa</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-348</link>
		<dc:creator>dispensa</dc:creator>
		<pubDate>Wed, 21 Jun 2006 19:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-348</guid>
		<description>My only concern with git (and arch and darcs) is that we&#039;re set up around a centralized dev environment here, in the CVS style. It optimizes a set of issues that aren&#039;t precisely the ones that pain me the most.

The things I need most are intelligent merging and the ability to handle a large repository well. Ideally, it wouldn&#039;t be a total shock to the system for our developers, either. :-)</description>
		<content:encoded><![CDATA[<p>My only concern with git (and arch and darcs) is that we&#8217;re set up around a centralized dev environment here, in the CVS style. It optimizes a set of issues that aren&#8217;t precisely the ones that pain me the most.</p>
<p>The things I need most are intelligent merging and the ability to handle a large repository well. Ideally, it wouldn&#8217;t be a total shock to the system for our developers, either. <img src='http://kernelmustard.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: -</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-347</link>
		<dc:creator>-</dc:creator>
		<pubDate>Wed, 21 Jun 2006 19:23:05 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-347</guid>
		<description>git is quite good WRT performance (at least on native linux, that is)</description>
		<content:encoded><![CDATA[<p>git is quite good WRT performance (at least on native linux, that is)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Eshbach</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-346</link>
		<dc:creator>Kevin Eshbach</dc:creator>
		<pubDate>Wed, 21 Jun 2006 17:53:48 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-346</guid>
		<description>I thought I read somewhere that Microsoft uses a customized version of Perforce called Source Depot.  I could have swore it was part of some PowerPoint presentation given at some conference.  I am googling for it, but not having much luck finding the article.</description>
		<content:encoded><![CDATA[<p>I thought I read somewhere that Microsoft uses a customized version of Perforce called Source Depot.  I could have swore it was part of some PowerPoint presentation given at some conference.  I am googling for it, but not having much luck finding the article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dispensa</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-345</link>
		<dc:creator>dispensa</dc:creator>
		<pubDate>Wed, 21 Jun 2006 16:15:54 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-345</guid>
		<description>That adds to my suspicion that nobody has anything seriously bad to say about Perforce.

I thought I read somewhere that Microsoft started NT development on Perforce and eventually switched to source depot. I don&#039;t remember why that was; anyone?</description>
		<content:encoded><![CDATA[<p>That adds to my suspicion that nobody has anything seriously bad to say about Perforce.</p>
<p>I thought I read somewhere that Microsoft started NT development on Perforce and eventually switched to source depot. I don&#8217;t remember why that was; anyone?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Eshbach</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-344</link>
		<dc:creator>Kevin Eshbach</dc:creator>
		<pubDate>Wed, 21 Jun 2006 14:09:20 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-344</guid>
		<description>We use Perforce at work (we needed a CM tool that was cross-platform.) and I have nothing but praise for it.  It really is a nice product.  (Though my only biggest nit is why the architecture is such that one user can lock down the whole database preventing other users from doing anything when submitting a large batch of changes.  Shouldn&#039;t it operate like a database and only lock down the relevant pages versus the whole table?)  I have never used CVS so I cannot honestly say if one is better than the other.</description>
		<content:encoded><![CDATA[<p>We use Perforce at work (we needed a CM tool that was cross-platform.) and I have nothing but praise for it.  It really is a nice product.  (Though my only biggest nit is why the architecture is such that one user can lock down the whole database preventing other users from doing anything when submitting a large batch of changes.  Shouldn&#8217;t it operate like a database and only lock down the relevant pages versus the whole table?)  I have never used CVS so I cannot honestly say if one is better than the other.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: strik</title>
		<link>http://kernelmustard.com/2006/06/20/the-hell-of-cvs/comment-page-1/#comment-343</link>
		<dc:creator>strik</dc:creator>
		<pubDate>Wed, 21 Jun 2006 07:11:55 +0000</pubDate>
		<guid isPermaLink="false">http://kernelmustard.com/2006/06/20/the-hell-of-cvs/#comment-343</guid>
		<description>Hello again,

yes, it seems you&#039;re right, this is an expected case.  I got the following answer on the CVS mailing list:

  &quot;The phenomenon described by the blogger is typical of a situation where
the common ancestor is not identified correctly.  What happens is that
there&#039;s the &quot;real&quot; common ancestor, and the (incorrect) version that
the user identifies as the common ancestor.  During a 3-way merge, the
difference between the &quot;real&quot; common ancestor and the user&#039;s
specification is lost.  If you do the math, what happens is that the
delta between the user&#039;s specification and the top of its branch is
applied to the target branch.  That delta does not include the
difference between the specified ancestor and the real one.  Hence, it
is lost.

So, it&#039;s important to tag the committed result of every merge, avoiding
race conditions (i.e. use &quot;cvs tag&quot; on the workspace from which the
merge was committed, not &quot;cvs rtag&quot;), and use that tag as the ancestor
for the next merge.  This is explained somewhere in the documentation.&quot;

Now I remember again *why* I am always tagging the point where I merged before.

- Spiro.</description>
		<content:encoded><![CDATA[<p>Hello again,</p>
<p>yes, it seems you&#8217;re right, this is an expected case.  I got the following answer on the CVS mailing list:</p>
<p>  &#8220;The phenomenon described by the blogger is typical of a situation where<br />
the common ancestor is not identified correctly.  What happens is that<br />
there&#8217;s the &#8220;real&#8221; common ancestor, and the (incorrect) version that<br />
the user identifies as the common ancestor.  During a 3-way merge, the<br />
difference between the &#8220;real&#8221; common ancestor and the user&#8217;s<br />
specification is lost.  If you do the math, what happens is that the<br />
delta between the user&#8217;s specification and the top of its branch is<br />
applied to the target branch.  That delta does not include the<br />
difference between the specified ancestor and the real one.  Hence, it<br />
is lost.</p>
<p>So, it&#8217;s important to tag the committed result of every merge, avoiding<br />
race conditions (i.e. use &#8220;cvs tag&#8221; on the workspace from which the<br />
merge was committed, not &#8220;cvs rtag&#8221;), and use that tag as the ancestor<br />
for the next merge.  This is explained somewhere in the documentation.&#8221;</p>
<p>Now I remember again *why* I am always tagging the point where I merged before.</p>
<p>- Spiro.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
