Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104916
  • 博文数量: 29
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 252
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-15 23:52
文章分类

全部博文(29)

文章存档

2011年(1)

2009年(28)

我的朋友

分类: LINUX

2009-07-23 14:41:34

ubuntu cvs 安装与配置


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",

CVS常用指令(部署中会涉及到CVS的使用)

  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

阅读(3455) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~