Windows下CVS服务器构建
以前做项目都是用实验室搭建好的SVN,这次在外面接了个项目,负责的老师也是程序员出身,以前在公司做过不少项目。他坚持要用CVS进行版本控制。
因为是使用myeclipse开发,开发环境中集成了CVS,所以我们要做的只是搭建个CVS服务器就可以了,再就是加几个用户,命令行就可以搞定,所以只安装cvsnt就够了,不用安装wincvs。
安装cvsnt很简单,网上教程也很多,至于版本我推荐使用cvsnt-2.5.03.2382,其他版本我这装完多少都有问题。
安装的时候会让Choose Setup type: Typical/Custom/Complete,建议选择Complete,免得出莫名其妙的问题。
下面是配置,转载的:
CVSNT服务器端的配置
(一)、仓库配置
1、 打开CVSNT的控制面板,运行开始菜单CVSNT菜单文件夹里的“CVSNT Control Panel”即可。如下图
2、 如上图,确保CVSNT的两个服务启动正常,单击选项卡“Repository configuration”(仓库配置)。CVS仓库是代码的每个版本和所有相关记录在服务器端的储存地。有些时候又称它为主拷贝(Master Copy),为什么呢,我们将在后面的章节中了解到。在创建CVS仓库之前,我们首先需要新建一个文件夹用于充当仓库。如下图,创建仓库文件夹 I:\mycvsdata。
3、 该文件夹最好不要与程序放在一起,以免万一系统崩溃时破坏数据。然后,点击“开始”->“程序”->“CVS for NT”->“configure server”,出现对话框后选择“Repositories”选项卡,就会出现如下对话框
4、 如上图,因为是本地计算机上架设CVS服务器,所以填写127.0.0.1,也可以填写为localhost;如果是要公开,填写公开的IP。然后单击“Add”(添加),添加一个仓库,然后再单击“添加”按钮,浏览刚才新建的仓库文件夹I:\mycvsdata如下图:
5、 如上右图,单击“确定”按钮:
6、 如上右图,单击“OK”按钮,会提示:
7、 如上图,单击“是”,就初始化文件夹作为仓库文件夹了,初始化后,在文件夹里面会生成一个CVSROOT的文件夹,里面有好多的文件和子夹,都是仓库的配置信息。此时仓库配置选项卡如下图:
(二)、服务器配置
1、 单击“Server Settings(服务器配置)”选项卡,
2、 如上图,保持默认选项即可。
(三)、兼容性配置
1、 单击“Compatibility Options(兼容性配置)”选项卡:
(四)、插件配置
1、 单击“Plugins(插件)”选项卡,
(五)、高级选项
1、 单击“Advanced(高级)”选项卡,如下图,保持默认即可。注意Unicode serve是指使用UTF-8编码。如果和项目不兼容,可以取消。
2、 单击“确定”,完成服务器的配置。
至于如何用TortoiseCVS或者eclipse新建和检出项目,我就不写了,可以参考这里:
玩转CVSNT+TortoiseCVS 版本控制系统(图解)(上)
玩转CVSNT+TortoiseCVS 版本控制系统(图解)(下)
如何添加虚拟用户?
默认情况下系统用户都是可以登录的。网上有很多资料都是增加系统用户作为cvs的用户。这样不太安全,即使添加的是Guest级别的系统用户。
添加虚拟用户需要 在命令行下用系统用户登录,首先设置环境变量CVSROOT。
set CVSROOT=:pserver:Administrator@localhost:2401/CVSNT
CVSROOT的写法是:
:pserver:username@hostname(或IP地址):CVS仓库路径
解释一下上面的字符串的含义:
1、“pserver” 是最常用的一直CVS远程访问方式;
2、“username” 是指客户端在服务器上的用户名,也就是我们在上面的“配置CVS帐号”一结中讲到的;
3、“hostname” 是CVS服务器的主机名,也可以是它的IP地址;
4、“CVS仓库路径” 是一个CVS仓库所在的目录,用于区分你要访问的是哪个仓库(因为一个CVS服务器上可能有多个不同仓库)。
然后登录
cvs login
输入密码即可
最后新建虚拟用户,映射到系统用户上
cvs -d D:\CVSNT passwd -r Administrator -a admin
-d:CVS仓库路径
-r :要映射的系统用户
-a:要添加的虚拟用户
至于添加用户组和分配权限,我没用到,就不写了。
没接触过这个
为什么按照你说的做了,可是客户端不能从服务器上下载东西 …………
嘿嘿 我感觉用哪个都一样的 习惯就好
这个太技术,不懂哦
学习了,多谢博主分享啊
SVN: 慢,代码库膨胀极快,客户端常有小问题,错误信息稀里糊涂
CVS, VSS:没有变更集概念,仅此一点就可以安息了
GIT: 复杂的 UI,超前的理念
Mercurial: 也趋向于复杂了
Bazaar: UI 古怪
Darcs: 慢
在其他地方看到的,不知道为什么“他坚持要用CVS进行版本控制。”看了一下,这个cvs貌似很复杂嘛~(没有用过,看你的建造方法觉得~)GIT在linux下不错,SVN也是,不过SVN在每个目录下都有.svn还要svn服务器支持不太爽~(仅个人意见,你是不是“冰河洗剑”的“冰河”?)
人习惯了一个东西就不愿意改变。那个老师用惯了CVS就不想换了。不论哪个版本控制都需要每个目录下建立类似.svn的文件吧。cvs也有。没有服务器怎么进行控制啊?总不能p2p吧。
图挂了,来自51cto,表示不淡定。
谢谢提醒,已经把图转过来了。