﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-砖头-文章分类-cvs</title><link>http://www.blogjava.net/yaozhuan/category/10008.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:32:05 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:32:05 GMT</pubDate><ttl>60</ttl><item><title>在Windows下配置与使用CVSNT</title><link>http://www.blogjava.net/yaozhuan/articles/41025.html</link><dc:creator>砖头</dc:creator><author>砖头</author><pubDate>Fri, 14 Apr 2006 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/yaozhuan/articles/41025.html</guid><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">1</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">、下载</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVSNT, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">下载地址</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">: <a href="http://www.cvsnt.org/wiki/">http://www.cvsnt.org/wiki/</a><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">2</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">、安装<span lang="EN-US">CVSNT</span>并重启计算机<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">3</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">、运行</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVSNT</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">的</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Service control panel<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">4</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">、建立知识库</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">,:<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Service control panel</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">选择</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Repositories,<span style="mso-spacerun: yes">  </span></span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">然后点击</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”Add”, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">选择或新建一个文件夹</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">比如这里我们新建一个</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”CVSServer”</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">文件夹</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">路径是</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”E:\CVSServer”, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">在出现“</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Do you want to initialise it?</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">”对话框时</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">,</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">选择“是”</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">知识库就配置好了。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">5</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">、用</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TortoiseCVS</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">创建新模块</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">:<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">选择一个上传代码的目录</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">(</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">比如</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">:TestCode), </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">点击右键</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">=</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">》</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”CVS” =</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">》</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">创建新模块</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">在</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Protocol</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">中选择</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Windows</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">授权协议</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">在</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Sever</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">中输入计算机名</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, Repository folder</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">中输入知识库的完整路径</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">”E:\CVSServer”, UserName</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">输入安装</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVSNT</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">计算机的登录用户名。然后点击“确定”</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">出现密码对话框时</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">输入刚才设置的登录用户的密码</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">然后点击“</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">OK</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">”</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">新模块就创建成功了。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">6</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">、上传代码</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">选择刚才创建新模块的目录</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TestCode, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">点击右键</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">=</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">》</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVS</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">添加所有内容</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">添加完成后</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">再点击右键</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">=</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">》</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVS</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">提交</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">, </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">就将代码上传到</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CVSNT</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">。<br /><br /></span>
		</p>
		<p>通常搭建CVS服务器都是在Linux/Unix平台上，但是在Windows平台上，凭借数目庞大的Open Source软件，我们也同样可以搭建一个适用于项目组的CVS服务器，并且还可以为其添加源代码跟踪功能。</p>
		<p>一、需要的软件<br />1、CVSNT<br />CVSNT是目前在Windows平台上构建CVS服务器最方便的工具，操作简单，以Windows服务程序的形式运行。目前CVSNT已被移植到其它平台如Linux上。<br />选用版本：2.0.58d。<br />选用这个版本而不是最新的2.5.x的原因是2.5.x改变了History文件的格式，影响了我们后面介绍的CVSTracNT的运行。当然，如果你不使用CVSTracNT，选用2.5.x也没有问题，其操作与2.0.58d基本相同，也十分的简单。<br />下载地址：<a href="http://www.cvsnt.org/">http://www.cvsnt.org</a></p>
		<p>2、CVSTracNT<br />CVSTracNT是一个基于Web的CVS源代码跟踪工具。使用CVSTracNT，你可以跟踪源代码的变更，提交任务单，创建里程碑，并通过Web的方式查看、比较源代码文件。对于CVS系统本身来说，是一个非常有益的补充。<br />选用版本：1.1.5 Build20050703多国语言版。<br />这个版本由cnpack项目组的成员进行了汉化，并添加了许多实用的工具。具体的内容可以参考其中文网站。<br />下载地址：<a href="http://www.cnvcl.org/">http://www.cnvcl.org</a></p>
		<p>3、ViewCVS<br />ViewCVS是一个用Python语言编写的CVS Web界面。有了它，你可以通过浏览器查阅源代码，进行版本比较。相对于CVSTracNT自带的Web界面来说，ViewCVS更加有亲和力，功能也比较完善。大名鼎鼎的SourceForge的Web界面就是使用ViewCVS搭建的。<br />还有另外一个CVS的Web界面CVSWeb，用Perl语言开发。<br />选用版本：1.0 dev r6。<br />最新的版本，没什么好说的。<br />下载地址：<a href="http://russ.hn.org/viewcvs/">http://russ.hn.org/viewcvs/</a></p>
		<p>4、Python<br />让ViewCVS运行起来，必不可少的就是Python。<br />选用版本：2.4.1。其它2.4.x版本应该也可以，但注意和ViewCVS的版本要搭配。<br />下载地址：<a href="http://www.python.org/">http://www.python.org</a></p>
		<p>5、PyWin32<br />Python语言的Win32扩展。<br />选用版本：2.04 for Py 2.4。<br />下载地址：<a href="http://pywin32.sourceforge.net/">http://pywin32.sourceforge.net</a></p>
		<p>6、Apache HTTP Server<br />ViewCVS可以在IIS和Apache服务器上运行，考虑再三，最后选择的Apache。虽然配置起来有些麻烦（其实也不麻烦），但考虑到Apache是开源项目，不会有法律问题，呵呵。<br />选用版本：2.0.54。<br />下载地址：<a href="http://apache.justdn.org/">http://apache.justdn.org/</a></p>
		<p>7、MySQL<br />ViewCVS提供了查询功能，使用的是MySQL数据库。<br />选用版本：3.23.42-nt。<br />不要使用4.x版本的MySQL，与ViewCVS兼容不太好。</p>
		<p>二、安装<br />1、安装CVSNT<br />直接运行CVSNT安装包。安装结束后，打开Service Control Panel，配置你的CVS仓库。点击Repositories选项页，添加你的仓库地址就可以了，不需要重新启动CVS服务器。</p>
		<p>2、安装CVSTracNT<br />直接运行CVSTracNT安装包。感谢CNPack的程序员，如果按照CVSTracNT网页上的安装介绍，一定会郁闷死。安装结束后运行CVSTrac配置程序，程序启动后会自动搜索CVS仓库，将其添加到CVSTrac数据库。选中数据库，点击浏览按钮，你的浏览器应该打开并显示CVSTrac的页面了。<br />CVSTracNT的使用及配置参考<a href="http://www.cnpack.org/">http://www.cnpack.org</a>上的介绍。</p>
		<p>3、安装Python及PyWin32<br />运行安装包即可。</p>
		<p>4、安装Apache HTTP Server<br />运行安装包即可。如果在安装过程中没有选择让Apache自动运行，那么可以通过开始菜单运行Apache。</p>
		<p>5、安装MySQL<br />运行安装包即可。</p>
		<p>6、安装ViewCVS<br />最麻烦的地方到了。<br />首先，将ViewCVS解压缩到一个目录中，然后在该目录的命令行中，运行python viewcvs-install。安装结束后，编辑viewcvs.conf文件，修改cvs_roots项为你的CVS仓库路径，修改default_root项为默认的CVS仓库，还可以修改邮件地址项。<br />然后拷贝web\cvs\viewcvs.cgi到你的Apache cgi-bin目录中。<br />运行Apache，在浏览器中输入<a href="http://localhost/cgi-bin/viewcvs.cgi">http://localhost/cgi-bin/viewcvs.cgi</a>，看看你的ViewCVS是不是运行顺利？<br />现在我们要为ViewCVS添加查询功能了。<br />运行MySQL的管理程序mysql，进入MySQL命令行模式，添加一个用户viewcvs，并赋予其读写的权力。退出。在命令行下运行python cvsbdadmin CREATE，根据提示输入数据库名，用户名和密码，数据库自动创建。<br />编辑viewcvs.conf文件，修改cvsdb块下的enabled选项值为1，去除后面各项前的注释符，修改各项的值为前面设置的值。<br />拷贝web\cgi\query.cgi到Apache cgi-bin目录下。<br />在浏览器中运行<a href="http://localhost/cgi-bin/query.cgi">http://localhost/cgi-bin/query.cgi</a>，看看结果……<br />失败了，系统提示Python错误。根据错误信息查到，错误处在dbi.py文件中。在dbi.py中有这样一行：datetime.tuple()。查阅Python文档，发现datetime对象没有tuple方法，只有timetuple方法，更改之后，运行正常。</p>
		<p>三、总结<br />以上的搭配方案适用于中小项目组，因为CVSNT本身在应对大项目时有一些效率问题。如果你想用CVS管理上万个源文件，那么用Linux平台搭建CVS服务器是更合适的选择。<br />无论如何，CVSTracNT都是你不该错过的好东西，当项目逐渐膨胀起来后，让CVSTracNT来管理一些机械的事情是一个好选择。<br />ViewCVS并不是必要的，但是比之CVSTracNT自带的Web界面，ViewCVS要更舒服一些，某些功能也更清晰（比如版本比较）。让你的上级通过ViewCVS来浏览你的工作情况也许是个好选择，你不需要在Trac中为他保留一个会扰乱正常工作程序的位置。<br />总得来说ViewCVS的查询功能并不是太方便，使用起来比较繁琐，结论是不用也罢。安装MySQL等等的繁琐工作也就不需要了。<br />我最遗憾的是，因为时间的关系，并没有建立SSL连接方式。从安全的角度来说，SSL也许是必不可少的，除非你的访问者都值得信任。<br />最后还要说的是，CVS虽然比较流行，但并不是源代码管理的唯一选择。在你作出决定之前，不妨先看看这篇文章：<a href="http://better-scm.berlios.de/comparison/comparison.html">http://better-scm.berlios.de/comparison/comparison.html</a>。<br /></p>
		<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
				<o:p>
						<br />
						<br />
						<div class="item-content">
								<div>
										<h4>
												<font size="2">Windows下面搭建CVS服务器环境</font>
										</h4>
								</div>
								<div>
										<font size="2">
												<span style="FONT-SIZE: 12pt">
														<b>CVS介绍</b>
												</span>
												<br />
												<br />CVS是Concurrent Versions System(并发版本系统)的缩写，基于Unix体系中成熟的SCCS(Source Code Control System)和RCS(Revision Control System)开发，是一个开放源码的项目，目前已是版本控制系统的主流软件。一个很常见的使用CVS的场合，就是开放源码项目。由于开放源码项目的开发者的分布性，对于版本管理的要求更加严格，而目前大部分的开放源码项目几乎都是采用CVS来管理源代码，CVS的标准性和强大可见一斑。CVS跟微软的VSS一样，是源代码版本控制工具之一，所不同的是CVS属于开源项目，并且CVS最初是为Linux/Unix设计的，现在已经有Windows下版本，它实现了跨平台。<br /><br />CVS采用客户机/服务器体系，代码以及各种版本存储在中心服务器内，每一个个体开发者开发时都首先从服务器上获得一份自己的拷贝，在此基础上进行开发，以避免直接影响服务器上的数据。开发者可以随时把自己的新代码提交给服务器，并通过更新获得代码的最新状态，保持与其他开发者的一致。<br /><br />CVS对于网络是透明的，开发者可以使用客户端软件(几乎所有的平台上都有相应的客户端软件)在任何时候，任何地点通过网络来获取最新的代码。有关Linux下CVS的搭建的资料很多而且很全，在这里就不再介绍。下面主要介绍一下个人在Windows下面搭建CVS的一个过程，或许对你有一定的帮助。<br /><br /><span style="FONT-SIZE: 12pt"><b>一、需要的软件</b></span><br /><b>1、CVSNT</b><br />CVSNT是目前在Windows平台上构建CVS服务器最方便的工具，操作简单，以Windows服务程序的形式运行。目前CVSNT已被移植到其它平台如Linux上。<br />选用版本：2.0.58d。<br />在这里我选用这个版本而不采用最新的2.5.x的原因主要是因为2.5.x版本的CVS改变了History文件的格式，导致无法使用CVSTracNT一起工作。但是如果你不使用CVSTracNT，选用2.5.x也一样，其操作与2.0.58d基本相同，也是十分的简单。<br />CVSNT可以直接到官方站点下载：</font>
										<a title="http://www.cvsnt.org/" href="http://www.cvsnt.org/" target="_blank">http://www.cvsnt.org/</a>
										<br />
										<br />
										<b>2、WinCVS</b>
										<br />WinCVS是CVS的一个客户端程序，当你创建了一个CVS服务器以后，你可以通过WinCVS来访问CVS服务器，添加数据以及获取CVS服务器上的文件等。WinCVS同样拥有Windows版本。<br />选用版本：2.0.2 (Build2)<br />客户端程序版本无所谓，只要与服务器端兼容即可。CVS访问协议有多种，我们经常用的是pserver,格式是：:pserver;username=youname;password=youpass;hostname=192.168.1.22:/cvsroot注意，这里的用户名以及密码是你访问服务器的用户名以及密码，对于Windows服务器来讲，可以在计算机管理中添加用户，最后面的cvsroot是CVS服务器数据仓库的根路径，与服务器设置要保持一致。<br />官方下载地址：<a title="http://www.wincvs.org" href="http://www.wincvs.org/" target="_blank">http://www.wincvs.org</a><br /><br /><b>3、Python</b><br />要想让WinCVS运行起来并能够支持命令行操作，必不可少的就是Python(包含TCL)。<br />选用版本：2.4.1<br />在运行CVS客户端程序的时候，需要Python支持，可以运行WinCVS在命令行中进行操作版本选择原则是与WinCVS兼容。<br />官方下载地址：<a title="http://www.python.org/" href="http://www.python.org/" target="_blank">http://www.python.org/</a><br /><br /><b>4、CVSTracNT</b><br />除了安装CVS的服务器端以及客户端程序外，在项目管理中我们还一般会配套安装CVSTracNT，它是一个基于Web的CVS源代码跟踪工具。使用CVSTracNT，我们可以跟踪源代码的变更，可以查看提交的记录，可以对比不同版本之间的异同，允许提交任务单、创建里程碑，并通过Web的方式查看、比较源代码文件。对于CVS系统本身来说，是一个非常有益的补充，对开发起到很大的帮助。<br />选用版本：1.1.5 Build20050703多国语言版。<br />这个版本由cnpack项目组的成员进行了汉化，并添加了许多实用的工具。具体的内容可以参考其中文网站。<br />官方下载地址：<a title="http://www.cnpack.org/" href="http://www.cnpack.org/" target="_blank">http://www.cnpack.org/</a><br /><br /><font size="2"><span style="FONT-SIZE: 12pt"><b>二、安装过程</b></span><br /><b>1、安装CVSNT</b><br />直接运行CVSNT安装包。安装结束后，打开Service Control Panel，配置你的CVS仓库。点击Repositories选项页，添加你的仓库地址就可以了，不需要重新启动CVS服务器。这里注意的是，你选择的数据仓库路径是你CVS服务器存储数据的路径，并不是你需要用来管理的文件目录。我们可以指定一个目录用于存储。<br /><br /><b>2、安装WinCVS</b><br />直接运行安装文件，按照提示Next下去即可。安装完成以后使用分配的帐号登陆CVS服务器进行相应的操作。详细使用可以参考WinCVS帮助文档。<br /><br /><b>3、安装Python</b><br />直接运行安装文件。注意要选择以前装TCL(使用命令行操作WinCVS时需要TCL的支持)，其他一路Next。记得最后在PATH中添加一个Python的安装目录。<br /><br /><b>4、安装CVSTracNT</b><br />直接运行CVSTracNT安装包。安装结束后运行CVSTrac配置程序，程序启动后会自动搜索CVS仓库，将其添加到CVSTrac数据库。选中数据库，点击浏览按钮，你的浏览器应该打开并显示CVSTrac的页面了。<br />CVSTracNT的使用及配置参考 </font><a title="http://www.cnpack.org/" href="http://www.cnpack.org/" target="_blank">http://www.cnpack.org/</a> 上的介绍。<br /><br /><font size="2"><span style="FONT-SIZE: 12pt"><b>三、总结</b></span><br />以上的搭配过程是本人自己第一次搭建的写照，很多地方可能还不是十分的完整，以后会不断补充。但是基本的都做完了，而且测试通过。在安装过程中刚开始的时候可能对CVS帐号的分配会比较迷惑。本人也是通过本次安装才知道账号添加试通过计算机管理来实现的，就是添加Windows用户 :-) 到此为止，一个简单的CVS环境就培植成功了，接下来的事情是如何添加文件到CVS数据库中以及如何使用WinCVS进行获取文件了。</font></div>
								<div class="clear">
								</div>
						</div>
				</o:p>
		</span>
<img src ="http://www.blogjava.net/yaozhuan/aggbug/41025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yaozhuan/" target="_blank">砖头</a> 2006-04-14 09:58 <a href="http://www.blogjava.net/yaozhuan/articles/41025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>