1. 安装 cvs
$ sudo apt-get install cvs
2. 安装 cvsd
$ sudo apt-get install cvsd
cvsd安装以后, 会提示设置“repository” 的位置location, type in "/cvsroot".
“RootJail” is setted in “/etc/cvsd/cvsd.conf”, the default value is /var/lib/cvsd.
This means, your repository location could be just “/cvsroot”
3. 创建 /myrepos。
$ cd /var/lib/cvsd
$ sudo mkdir cvsroot
4. 初始化 /cvsroot
$ sudo cvs -d /var/lib/cvsd/cvsroot init
5. 设置cvsd用户鉴定(user authentication)
normal it’s system level, and the cvs users should be configured independently.
$ sudo vi /var/lib/cvsd/cvsroot/CVSROOT/config
添加下面行:
SystemAuth=no
PamAuth=no
LockDir=/tmp/cvsroot
Look out! “/tmp/cvsroot” 和RootJail的位置是相关的.
6. 创建 LockDir
$ sudo mkdir /var/lib/cvsd/tmp/cvsroot
7. 创建 users
$ sudo cvsd-passwd /var/lib/cvsd/cvsroot cvs-user
8. 编辑 cvsd configuration
$ sudo vi /etc/cvsd/cvsd.conf
The default one should be:
RootJail /var/lib/cvsd
Repos /cvsroot
NOTICE! Repos路径也是和RootJail相关的.
9. Set directory’s popedom
$ sudo chown cvsd:cvsd /var/lib/cvsd -R
10. Restart cvsd
$ sudo /etc/init.d/cvsd restart
test cvs
cvs -d :pserver:mcl@localhost:/cvsroot login
cvs -d :pserver:mcl@localhost:/cvsroot checkout
pserver认证方式使用缺省端口,不使用代理.
若使用ssh认证方式,需要进行如下设置:
配置.ssh/config 和 .bashrc文件
$ cd ~
$ vi .ssh/config
添加内容为:
Host localhost
HostKeyAlias cvsserver
Hostname 192.168.11.134
Port=22
$chmod 600 .ssh/config
$ vi .bashrc
添加内容:
CVS_RSH=ssh
CVSROOT=:ext:mcl@localhost:/cvs
export CVSROOT
export CVS_RSH
有可能还需要进行PATH设置,然后export PATH
$source .bashrc
然后就可以使用了
cvs co 目录文件名
cvs update 目录文件名
关于本地CVS sever的相关测试还没试,这个需要进一步学习cvs的命令,进行相应部署,之后再研究下,:)
参考:中 cvsweb安装
sudo apt-get install cvsweb
sudo cp /usr/share/cvsweb/* /var/www
sudo vi /etc/cvsweb/cvsweb.conf //将路径指向你的仓库,并设置 "hidecvsroot" => "1",
|
|
1.导入一个源代码库: 源代码库在目录/home/weiqiong/project,其下有文件test.c和test.h shell>cd /home/weiqiong/project shell>cvs import -m "test project" test(需要导入的项目名) weiqiong(开发商信息) start(版本信息)
2. 获得第一份工作copy shell>cd /home/weiqiong shell>cvs checkout test 则目录/home/weiqiong/test中就会有test.c和test.h两个文件
3. 寻找工作记录(-Q为去除无关的提示文字) shell>cvs -Q update(将cvs上的更新下载到本地) shell>cvs -Q diff -c(比较cvs上和本地的代码的不同) 如果希望某一特定文件的变化,在最后加上文件名
4. 浏览记录信息 shell>cvs log test.c
5. 查看两个版本的不同之处: shell>cvs diff -c -r 1.3 -r 1.4 test.c
6. 恢复旧版本:如果当前最新版本为1.4,而你想将其恢复到1.3版本,重新建立一个新版本1.5 shell>cvs -Q update -p -r 1.3 hello.c > hello.c shell>cvs update hello.c shell>cvs ci -m "reverted to 1.3 code" hello.c 或者 shell>cvs update -j 1.4 -j 1.3 hello.c shell>cvs update hello.c shell>cvs ci -m "reverted to 1.3 code" hello.c
7. 增加文件 vi newfile cvs add newfile(若为二进制文件则用cvs add -kb readme.doc) cvs ci -m "add newfile" newfile
8. 删除文件 rm newfile.c cvs remove newfile.c cvs ci -m "removed newfile.c" newfile.c
9. 增加目录 mkdir newdir cvs add newdir
10. 若要增加多层次的项目子目录,则需要服务器端加入目录,客户端add是很麻烦的 服务器端加入多层目录和文件后,客户端需要 cvs update -d 获取最新的目录更新,但是文件的添加必须由客户端add
11. 删除目录:需要先删除目录下的文件 cvs update -P 从工作copy中删除空目录,但是源代码库依然保留着空目录 如果需要更新工作copy的目录与源代码库完全一直(主要是包括空目录),需要 cvs update -d
12. 导出不带CVS目录的源文件,export只能针对一个TAG或者日期导出,空目录不会被导出: cvs export -r release1 project_name cvs export -D 20021023 project_name cvs export -D now project_name
13. 确认版本里程碑 cvs tag release_1_0
14. 开始一个新的里程碑,标记所有文件开始进入2.x的开发 cvs commit -m "make all release 2.0" -r release_2_0
15. 版本分支的建立 在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用, 则从先前标记的里程碑:release_1_0导出一个分支release_1_0patch cvs rtag -b -r release_1_0 release_1_0patch projname
一些人先在另外一个目录下导出release_1_0patch这个分支:解决1.0中的紧急问题, cvs checkout -r release_1_0patch 而其他人员仍旧在项目的主干分支2.x上开发
在release_1_0patch上修正错误后,标记一个1.0的错误修正版本号 cvs tag release_1_0patch_1 如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0patch_1 中的修改到当前代码中: cvs update -j release_1_0patch_1
16.修改某个版本注释: 每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名, 把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释: cvs admin -m 1.3:"write some comments here" file_name
17.在注释中可以加入以下宏,cvs会自动将其替换为相应的项 $Id$ $Header$ $Author$ $Date$ $Revision$ $Log$ $Source$ $Name$
18.查看当前各文件的状态,包括文件的当前编辑版本号,源代码库版本号,文件的状态 cvs status filename
19.粘着选项 cvs update -D "1999-04-09" 删除粘着,回到当前最新版本 cvs update -A
20.导入一个目录 比如当前目录为jni,下面有很多新建的文件需要导入到cvs: cvs import java/com/capitalonline/xmail/MailApi/jni weiqiongimport R1_0_0_0 | |