<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CVS Guide Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/cvs-guide/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/cvs-guide/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 27 Feb 2021 09:55:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>How CVS will help to Realtime Developers ?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-cvs-will-help-to-realtime-developers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-cvs-will-help-to-realtime-developers/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 29 Jan 2009 13:21:36 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[CVS Advantages for Developers]]></category>
		<category><![CDATA[CVS Benefits for Developers]]></category>
		<category><![CDATA[CVS Guide]]></category>
		<category><![CDATA[CVS Tips & Tricks]]></category>
		<category><![CDATA[CVS Tutorial for Developers]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Developers Tools]]></category>
		<category><![CDATA[Help]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Realtime]]></category>
		<category><![CDATA[Realtime Developers]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/29/how-cvs-will-help-to-realtime-developers/</guid>

					<description><![CDATA[<p>CVS Tips &#38; Tricks The CVS commands here assume that you are using the command line version of CVS. Tips [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-cvs-will-help-to-realtime-developers/">How CVS will help to Realtime Developers ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3985 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/how-cvs-help-to-realtime-de.png" alt="how-cvs-will-help-to-realtime-developers" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/how-cvs-help-to-realtime-de.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/how-cvs-help-to-realtime-de-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></h1>
<h1><span style="color: #0000ff;"><b>CVS</b> Tips &amp; Tricks</span></h1>
<p>The <b>CVS</b> commands here assume that you are using the command line version of <b>CVS</b>. Tips and tricks for a specific <b>CVS</b> GUI are specific to each GUI and do not really belong here.</p>
<h2>Viewing the commit log of a file.</h2>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs log <i>filename</i></b></td>
</tr>
</tbody>
</table>
</div>
<h2>Show current status of a file.</h2>
<p>The status command will show you the latest version, the version in your working directory and if your local copy has been modified.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs status <i>filename</i></b></td>
</tr>
</tbody>
</table>
</div>
<h2><span style="color: #0000ff;">Performing a <b>CVS</b> diff</span></h2>
<p>After developers have checked in updates to the code it may be beneficial to see what has changed, either to help solve bugs or to track changes. There are several option to do this.</p>
<ol>
<li><b>Perform a diff between complete branches: </b></li>
</ol>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ </b><b>cvs -q diff -u -r BRANCH1 -r BRANCH2 </b></td>
</tr>
</tbody>
</table>
</div>
<ol>
<li><b>Perform a diff between a single file in two branches: </b></li>
</ol>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ </b><b>cvs -q diff -u -r BRANCH1 -r BRANCH2 filename </b></td>
</tr>
</tbody>
</table>
</div>
<ol>
<li><b>Perform a diff between different versions of a file: </b></li>
</ol>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ </b><b>cvs -q diff -u -r version1 -r version2 filename </b></td>
</tr>
</tbody>
</table>
</div>
<ol>
<li><b>Perform a diff between working version and most up to date file in database: </b></li>
</ol>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ </b><b>cvs -q diff -u filename </b></td>
</tr>
</tbody>
</table>
</div>
<ol>
<li><b>Perform a diff between working version and a specific database version: </b></li>
</ol>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ </b><b>cvs -q diff -u -r version filename </b></td>
</tr>
</tbody>
</table>
</div>
<h2><span style="color: #0000ff;"><b>Retrieving </b><b>CVS Information on Files</b></span></h2>
<p>To retrieve the current version and other relevant information about a file run:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs status filename </b></td>
</tr>
</tbody>
</table>
</div>
<p>To retrieve the entire change log pertaining to a file run:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs log filename </b></td>
</tr>
</tbody>
</table>
</div>
<h2><b><span style="color: #0000ff;">Retrieving CVS Files Based Upon Revision</span></b></h2>
<p>To retrieve a file from <b>CVS</b> based upon a revision number perform the following:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs -q up -Pd -r revision filename </b></td>
</tr>
</tbody>
</table>
</div>
<ul>
<li>To get the revision number use the log command above</li>
</ul>
<h2><span style="color: #0000ff;"><b>Tag file in </b><b>CVS as a Release</b></span></h2>
<p>To tag files in <b>CVS</b> as a release perform the following:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs tag </b></td>
</tr>
</tbody>
</table>
</div>
<ul>
<li>Run the command from within the release source dir.</li>
</ul>
<h2><span style="color: #0000ff;"><b>Creating a Branch</b></span></h2>
<p>I like to do the following before creating a branch:</p>
<p>See what tags are available and pick one.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> -q log <i>filename</i></td>
</tr>
</tbody>
</table>
</div>
<p>Revert to a tagged version of HEAD.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs -q up -r TAG_Version </b></td>
</tr>
</tbody>
</table>
</div>
<p>To create a branch in <b>CVS</b> perform the following:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>$ cvs tag -b </b></td>
</tr>
</tbody>
</table>
</div>
<p>Run the command from within the release source dir. This should be done in the top level directory of the project. The chosen_branch is something like BRANCH_36_BUG_.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td><b>cvs -q up -r </b></td>
</tr>
<tr>
<td><b>$ </b><b>cvs -q status &lt;&#8211; confirm that the branch has specified as the tag </b></td>
</tr>
<tr>
<td><b>$ </b><b>cvs tag _mm_day_year &lt;&#8211; eg: BRANCH_12_BUG_12345_07_17_2009 </b></td>
</tr>
</tbody>
</table>
</div>
<h2><b><span style="color: #0000ff;">Reverting to a Branch</span></b></h2>
<p>To revert to a branch in <b>CVS</b> perform the following:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> -q <b>up &#8211;</b>r</td>
</tr>
</tbody>
</table>
</div>
<ul>
<li>Run the command from within the release source dir. This should be done in the top level directory of the project. The chosen_branch is something like BRANCH_BUG_.</li>
</ul>
<h2><b><span style="color: #0000ff;">Verifying you are in a branch</span></b></h2>
<p>To verify you are in a branch</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> -q status</td>
</tr>
</tbody>
</table>
</div>
<p>You will see that the branch is a sticky tag.</p>
<h2>Merge Current Branch with HEAD</h2>
<p>Ensure that you are in the branch by reverting to the branch and Verifying that you are in the branch.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> update -j</td>
</tr>
</tbody>
</table>
</div>
<p>This will ensure that you are your branch is getting merged properly with HEAD so the only differences you see between your branch and the are changes that you made. You can verify this from your branch with:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> -q diff -u -r | less</td>
</tr>
</tbody>
</table>
</div>
<p>You will eventually have to commit your changes you should always do a tag on the branch after your commit.</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> tag</td>
</tr>
</tbody>
</table>
</div>
<h2>Merge HEAD into Current Branch Multiple Times (with tags) and without -kk option</h2>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> update -j -j</td>
</tr>
</tbody>
</table>
</div>
<p>This command will unfortunenately result in a lot of your ID tags getting changed at the top. Using the &#8211;kk option will avoid this problem. But then you won&#8217;t see which files have changed and You won&#8217;t know who last modified a file easily. After you run this command I recommend:</p>
<pre>$ vim `<b>cvs</b> up -d | grep '^C' | sed -e 's/^C //'`</pre>
<p>You may find the following page interesting as well: <a href="http://kb.wisc.edu/middleware/page.php?id=4087">http://kb.wisc.edu/middleware/page.php?id=4087</a></p>
<p>This will grab all of the conflicting files. You can save them with :w. And step through them with :bn. You can easily close them all with :wq!.</p>
<h2><span style="color: #0000ff;"><b>Merge HEAD into Current Branch Multiple Times (with tags)</b></span></h2>
<p>To merge current HEAD into a branch that has already had HEAD merged into it once, the differences between that last merge and current HEAD need to be gathered and applied to the branch. This is done by finding out when the last time HEAD was merged with the branch. Hopefully you tagged your branch. Repeat steps 1 and 2 from the previous section to create a tag for HEAD and to create a tag for your branch so you can have a backup/reference point. Then, perform the following if you have tagged the branch when merging the last time:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> update -kk -j -j</td>
</tr>
</tbody>
</table>
</div>
<ul>
<li>Run the command from within the branched version. is the old tag in HEAD from the last time you merged (the tag that you created in Step one from the previous section). If you in this case, the format will likely be the following:</li>
</ul>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> update -kk -j UPDATE_HEAD_36_BUG__06_16_2008 -j UPDATE_HEAD_36_BUG__07_23_2008</td>
</tr>
</tbody>
</table>
</div>
<p>The first tag is the one created the last time HEAD was merged into the branch. The second tag is one that should have been just created. This will take all the differences between the two tags, and bring them into the branch. The next time a merge from HEAD into the branch occurs, this latest tag will be the &#8220;old&#8221; tag, and the new tag will be created at the time of the merge.</p>
<p>The reason for tagging the branch before a join/merge like this is to create a reference point to revert to if the need ever arises. The -kk option removes rcsid tags so that the <b>cvs</b> tag at the top doesn&#8217;t get flagged as a conflict on every merge/join.</p>
<h2><span style="color: #0000ff;"><b>Merge HEAD into Current Branch Multiple Times (without tags)</b></span></h2>
<p>If no tags have been created for the branch when HEAD was merged into a branch at a previous time, an alternative is to use the daily build tag. Find the commit message of the last time HEAD was merged into the branch and was committed and select the daily build tag the day BEFORE that one (but only if the commit was before the daily build that day, i.e. before lunch time for GMT -06:00). An example is provided below on how to merge without tagging:</p>
<div>
<table class="mceItemTable" border="0">
<tbody>
<tr>
<td>$ <b>cvs</b> update -kk -j Tag_Branch -j HEAD&gt;</td>
</tr>
</tbody>
</table>
</div>
<p>Run the command from within the branched version.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
<b>To Avoide network confusion :-</b></p>
<p>use :- alias cvs=`cvs -z9`</p>
<p>causes cvs to use compression level 6.</p>
<p>Good links for it:-</p>
<ul>
<li>http://datagrams.blogspot.com/2009/01/how-to-deploy-cvs-concurrent-versions.html</li>
</ul>
<ul>
<li>http://kb.wisc.edu/middleware/page.php?id=4087</li>
<li>http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_10.html#SEC85</li>
<li>http://ximbiot.com/cvs/wiki/Special/Index</li>
<li><a class="system-pagebreak" title="CVS" href="http://ittipsandtrics.blogspot.com/search/label/CVS%20%28Concorrent%20Version%20System%29" target="_blank" rel="noopener">More Help!!</a></li>
</ul>
<p>Refer for more on This:-</p>
<p><a class="caption" title="CVS Configuration - Install CVS" href="http://ittipsandtrics.blogspot.com/search/label/CVS%20%28Concorrent%20Version%20System%29">          Click Me!!</a></p>
<p>Thanks,</p>
<p>-Amaresh Das</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-cvs-will-help-to-realtime-developers/">How CVS will help to Realtime Developers ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-cvs-will-help-to-realtime-developers/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>What are the Best Practices of CVS?</title>
		<link>https://www.scmgalaxy.com/tutorials/cvs-best-practices-2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/cvs-best-practices-2/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 29 Jan 2009 09:39:24 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Best Practices of CVs]]></category>
		<category><![CDATA[CVS Best Practices]]></category>
		<category><![CDATA[CVS Best Practices Guide]]></category>
		<category><![CDATA[CVS Best Practices Tips]]></category>
		<category><![CDATA[CVS Guide]]></category>
		<category><![CDATA[CVS Tips]]></category>
		<category><![CDATA[CVS Tips & Tricks]]></category>
		<category><![CDATA[CVS Tutorial]]></category>
		<category><![CDATA[list of CVS Best Practices]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/29/cvs-best-practices-2/</guid>

					<description><![CDATA[<p>CVS Best Practices   These are list of CVS Best Practices: * Don’t share workspaces Sharing workspaces compromises CVS’s ability [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/cvs-best-practices-2/">What are the Best Practices of CVS?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p align="center"><img decoding="async" class="alignnone size-full wp-image-3997" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices-1.png" alt="cvs-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices-1-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 14pt;">CVS Best Practices</span><span style="font-size: 10pt;"><br />
</span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;"> </span></p>
<p class="MsoNormal"><strong>These are list of CVS Best Practices:</strong></p>
<p class="MsoNormal"><strong>* Don’t share workspaces</strong></p>
<p class="MsoNormal">Sharing workspaces compromises CVS’s ability to track activity by user or task.</p>
<p class="MsoNormal"><strong>* Don’t work outside of managed workspaces</strong></p>
<p class="MsoNormal">CVS can only track work in progress when it takes place within managed workspaces. Never copy files from others sandboxes or even from outside your sandbox since you may overwrite somebody else’s code.</p>
<p class="MsoNormal"><strong>* Don’t use jello views</strong></p>
<p class="MsoNormal">A file in your workspace should not change unless you explicitly cause the change. A &#8220;jello view&#8221; is a workspace where file changes are caused by external events beyond your control e.g. workspace built upon a tree of symbolic links to files in another workspace.</p>
<p class="MsoNormal"><strong>* Stay in sync with the codeline</strong></p>
<p class="MsoNormal">The quality of your work depends largely on how well it meshes with others work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. Update your code at least once in the morning daily.</p>
<p class="MsoNormal"><strong>* Checkin code daily</strong></p>
<p class="MsoNormal">Integrating your development work with other peoples&#8217; work also requires you to check in your changes regularly. Don’t keep your new code lying in your workspace for many days at a time. This may lead to many conflicts at a later stage when you try to merge.</p>
<p class="MsoNormal"><strong>* Never check in without compiling and testing your code</strong></p>
<p class="MsoNormal"><strong>* Always update your modules/ files and resolve any conflicts before committing</strong></p>
<p class="MsoBodyText">* After committing changes, diff with previous version to make sure you did not accidentally overwrite anybody else’s code</p>
<p class="MsoNormal"><strong>* If you overwrite somebody else’s code, rollback</strong></p>
<p class="MsoBodyText">* Always communicate any changes you commit, to all those concerned with the module/ file that was changed</p>
<p class="MsoNormal"><strong>* Always add comments when committing changes</strong></p>
<p class="MsoNormal">Good and meaningful comments make it easy for others to know exactly what was changed. For e.g. if it’s a bug fix it should have a Bug Number.</p>
<p class="MsoNormal"><strong>* Add whitespaces with discretion</strong></p>
<p class="MsoNormal">Changes to whitespaces cause unnecessary updates to happen and may show conflicts during merges</p>
<p class="MsoNormal">
<p>The post <a href="https://www.scmgalaxy.com/tutorials/cvs-best-practices-2/">What are the Best Practices of CVS?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/cvs-best-practices-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Introduction to CVS &#124; Know ABout CVS &#124; Quick Start Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/introduction-to-cvs/</link>
					<comments>https://www.scmgalaxy.com/tutorials/introduction-to-cvs/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:41:11 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[About]]></category>
		<category><![CDATA[About CVS]]></category>
		<category><![CDATA[CVS Guide]]></category>
		<category><![CDATA[CVS Introduction]]></category>
		<category><![CDATA[CVS Overview]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[Introduction to CVS]]></category>
		<category><![CDATA[New]]></category>
		<category><![CDATA[Overview]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Start]]></category>
		<category><![CDATA[Start With CVS]]></category>
		<category><![CDATA[What]]></category>
		<category><![CDATA[What is CVS]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/introduction-to-cvs/</guid>

					<description><![CDATA[<p>Introduction to CVS CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/introduction-to-cvs/">Introduction to CVS | Know ABout CVS | Quick Start Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><img decoding="async" class="alignnone size-full wp-image-3989 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-introduction.png" alt="cvs-introduction" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-introduction.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-introduction-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></h3>
<h3><a title="introduction" name="introduction"></a><a href="http://www.nongnu.org/cvs/#TOCintroduction#TOCintroduction">Introduction to CVS </a></h3>
<p>CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills a similar role to the free software <u>RCS</u>, <u>PRCS</u>, and <u>Aegis</u> packages.<br />
CVS is a production quality system in wide use around the world, including many free software projects.<br />
While CVS stores individual file history in the same format as RCS, it offers the following significant advantages over RCS:</p>
<ul>
<li>It can run scripts which you can supply to log CVS operations or enforce site-specific polices.</li>
<li><strong>Client/server </strong><strong>CVS</strong> enables developers scattered by geography or slow modems to function as a single team. The version history is stored on a single central server and the client machines have a copy of all the files that the developers are working on. Therefore, the network between the client and the server must be up to perform CVS operations (such as checkins or updates) but need not be up to edit or manipulate the current versions of the files. Clients can perform all the same operations which are available locally.</li>
<li>In cases where several developers or teams want to each maintain their own version of the files, because of geography and/or policy, CVS&#8217;s <strong>vendor branches</strong> can import a version from another team (even if they don&#8217;t use CVS), and then CVS can merge the changes from the vendor branch with the latest files if that is what is desired.</li>
<li><strong>Unreserved checkouts</strong>, allowing more than one developer to work on the same files at the same time.</li>
<li>CVS provides a flexible <strong>modules database</strong> that provides a symbolic mapping of names to components of a larger software distribution. It applies names to collections of directories and files. A single command can manipulate the entire collection.</li>
<li>CVS servers run on most unix variants, and clients for Windows NT/95, OS/2 and VMS are also available. CVS will also operate in what is sometimes called server mode against local repositories on Windows 95/NT.</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/introduction-to-cvs/">Introduction to CVS | Know ABout CVS | Quick Start Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/introduction-to-cvs/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>CVS Best Practices &#8211; List of CVS Best Practices &#8211; CVS Tips</title>
		<link>https://www.scmgalaxy.com/tutorials/cvs-best-practices/</link>
					<comments>https://www.scmgalaxy.com/tutorials/cvs-best-practices/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:38:42 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Best Practices for CVs]]></category>
		<category><![CDATA[CVS Best Practices]]></category>
		<category><![CDATA[CVS Best Practices Guide]]></category>
		<category><![CDATA[CVS Best Practices Tips]]></category>
		<category><![CDATA[CVS Guide]]></category>
		<category><![CDATA[CVS Tips]]></category>
		<category><![CDATA[CVS Tutorial]]></category>
		<category><![CDATA[list of CVS Best Practices]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/cvs-best-practices/</guid>

					<description><![CDATA[<p>CVS Best Practices These are list of CVS Best Practices: * Don’t share workspaces Sharing workspaces compromises CVS’s ability to [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/cvs-best-practices/">CVS Best Practices &#8211; List of CVS Best Practices &#8211; CVS Tips</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3955" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices.png" alt="cvs-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/cvs-best-practices-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>CVS Best Practices</p>
<p><strong>These are list of CVS Best Practices:</strong></p>
<p><strong>* Don’t share workspaces</strong></p>
<p>Sharing workspaces compromises CVS’s ability to track activity by user or task.</p>
<p><strong>* Don’t work outside of managed workspaces</strong></p>
<p>CVS can only track work in progress when it takes place within managed workspaces. Never copy files from others sandboxes or even from outside your sandbox since you may overwrite somebody else’s code.</p>
<p><strong>* Don’t use jello views</strong></p>
<p>A file in your workspace should not change unless you explicitly cause the change. A &#8220;jello view&#8221; is a workspace where file changes are caused by external events beyond your control e.g. workspace built upon a tree of symbolic links to files in another workspace.</p>
<p><strong>* Stay in sync with the codeline</strong></p>
<p>The quality of your work depends largely on how well it meshes with others work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. Update your code at least once in the morning daily.</p>
<p><strong>* Checkin code daily</strong></p>
<p>Integrating your development work with other peoples&#8217; work also requires you to check in your changes regularly. Don’t keep your new code lying in your workspace for many days at a time. This may lead to many conflicts at a later stage when you try to merge.</p>
<p><strong>* Never check in without compiling and testing your code</strong></p>
<p><strong>* Always update your modules/ files and resolve any conflicts before committing</strong></p>
<p>* After committing changes, diff with previous version to make sure you did not accidentally overwrite anybody else’s code</p>
<p><strong>* If you overwrite somebody else’s code, rollback</strong></p>
<p>* Always communicate any changes you commit, to all those concerned with the module/ file that was changed</p>
<p><strong>* Always add comments when committing changes</strong></p>
<p>Good and meaningful comments make it easy for others to know exactly what was changed. For e.g. if it’s a bug fix it should have a Bug Number.</p>
<p><strong>* Add whitespaces with discretion</strong></p>
<p>Changes to whitespaces cause unnecessary updates to happen and may show conflicts during merges</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/cvs-best-practices/">CVS Best Practices &#8211; List of CVS Best Practices &#8211; CVS Tips</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/cvs-best-practices/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Share common projects with two different projects in CVS</title>
		<link>https://www.scmgalaxy.com/tutorials/share-common-projects-with-two-different-projects-in-cvs/</link>
					<comments>https://www.scmgalaxy.com/tutorials/share-common-projects-with-two-different-projects-in-cvs/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 07 Jan 2009 06:08:42 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Common]]></category>
		<category><![CDATA[CVS different projects sharing]]></category>
		<category><![CDATA[CVS Guide]]></category>
		<category><![CDATA[CVS projects sharing]]></category>
		<category><![CDATA[CVS Tutorial]]></category>
		<category><![CDATA[Different]]></category>
		<category><![CDATA[Different projects]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Multiple projects]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Projects in CVS]]></category>
		<category><![CDATA[Share]]></category>
		<category><![CDATA[Sharing projects with CVS]]></category>
		<category><![CDATA[Tow Different Projects]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/07/share-common-projects-with-two-different-projects-in-cvs/</guid>

					<description><![CDATA[<p>Share common projects with two different projects in CVS If there are two or more projects in the repository, some of [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/share-common-projects-with-two-different-projects-in-cvs/">Share common projects with two different projects in CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3936 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/share-common-projects-with-.png" alt="projects-in-cvs" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/share-common-projects-with-.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/share-common-projects-with--300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Share common projects with two different projects in CVS</span></span></strong><strong><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></strong><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">If there are two or more projects in the repository, some of the files are common in these two projects and some are different.</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">How to share the files that are same between these projects? How can archive this?</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">How Changes in common files be reflected to both projects.</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Version of CVS 2.5.03</span></span><span style="font-family: Verdana;"><span style="color: #000000; font-size: medium;"> </span></span><span style="font-family: Verdana;"><span style="color: #000000; font-size: medium;"> </span></span></p>
<p><strong><span style="font-family: Verdana;"><span style="font-size: medium;"><span style="color: #000000;">Answer: </span></span></span></strong><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">The CVSROOT/modules2 file or the older CVSROOT/modules file can help with this sort of thing:</span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><a href="http://cvsnt.org/manual/html/Administrative-files.html#modules"><u><span style="color: #0000ff;">http://cvsnt.org/manual/html/Administrative-files.html#modules</span></u></a></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Or</span></span><span style="font-size: 10pt; font-family: Verdana;"><a href="http://cvsnt.org/manual/html/modules2.html"><u><span style="color: #0000ff;">http://cvsnt.org/manual/html/modules2.html</span></u></a></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Generally the best CM independent solution is to organise your project source code hierarchy within the CM tool in such a way that &#8216;common&#8217;</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">code is in a project/module/directory of it&#8217;s own so it can be checked out and managed independently of other projects, ie:</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">/repo/proja</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">/repo/projb</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">/repo/common</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Then you define a module where &#8216;projecta&#8217; = &#8216;proja&#8217;+&#8217;common&#8217; so when a person does &#8216;cvs co projecta&#8217; they  get:</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">/projecta/proja</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">/projecta/common</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">If your server is running on Linux then you can &#8216;cheat&#8217; by simply symbolically linking the RCS file into two directories (though this may cause locking conflicts if the files are very busy).</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;"> </span></span></p>
<p><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Thanks to:</span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="color: #000000;">Arthur Barrett</span></span><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium;"> </span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/share-common-projects-with-two-different-projects-in-cvs/">Share common projects with two different projects in CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/share-common-projects-with-two-different-projects-in-cvs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
