svn版本控制工具的安装和配置
svn在团队合作中是被较为普遍地使用的,它不但可以用于团队中的代码、文档等的版本控制,从而实现团队成员之间同步合作开发,也可以用于将新版本的代码更新到正式环境的生产服务器上(这样如果出现较大的问题时,可以选择将代码恢复到上一版本的代码)。下面我简单描述一下svn服务器的安装。1.
svn在团队合作中是被较为普遍地使用的,它不但可以用于团队中的代码、文档等的版本控制,从而实现团队成员之间同步合作开发,也可以用于将新版本的代码更新到正式环境的生产服务器上(这样如果出现较大的问题时,可以选择将代码恢复到上一版本的代码)。
svn的server安装有两种方式,一种是使用Linux的软件包管理器(如Fedora和RedHat以及CentOS中的yum)进行二进制包安装,另一种是使用源码编译安装。因为第二种源码编译安装,需要考虑到挺多的依赖包的安装,所以比较麻烦,这里我简单说下使用yum安装以及配置方法。关于源码编译安装,安装方法见 http://svn.apache.org/repos/asf/subversion/trunk/INSTALL ,源码包下载地址为 http://subversion.apache.org/download 。(可使用wget http://www.eu.apache.org/dist/subversion/subversion-1.9.2.tar.gz)
安装步骤如下:
1. yum命令安装
# yum install subversion ;只需执行这一步svn就安装完成了。
# yum install mod_dav_svn
(注:通常我们是通过svn://协议来访问远端的仓库数据的,但是其实Subversion的设计包括了一个抽象的网络层,这意味着版本库是可以通过各种服务器进程访问的。理论上来会说,Subversion可以使用无限数量的网络协议来实现,甚至可以直接用perl利用相关的接口来编写自定义协议。但日常中,用得最多的就是svn://协议,利用mod_dav_svn模块通过Apache服务进行访问。所以如果不打算使用http协议来访问Subversion,那么mod_dav_svn模块就无须安装。如果需要使用http协议访问Subversion,可以参考 http://www.uml.org.cn/pzgl/200908078.asp)
2. 建立版本控制库目录
# mkdir -p /var/svn/default-repos
(注:这里的版本库目录与subversion安装目录是不一样的)
3. 建立版本库
#svnadmin create /var/svn/default-repos
(注:执行此命令后将会自动在default-repos目录下生成必须的配置文件)
4. 配置该版本库的配置文件
#ll /var/svn/default-repos/conf
-rw-r--r-- 1 root root 1080 Nov 16 23:44 authz
-rw-r--r-- 1 root root 309 Nov 16 23:44 passwd
-rw-r--r-- 1 root root 2279 Nov 16 23:44 svnserve.conf
总共有authz(配置用户权限)、passwd(设置用户列表) 和 svnserve.conf(svnserver的配置) 三个配置文件
# vi /var/svn/default-repos/conf/svnserve.conf
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd # 指明密码文件路径
authz-db = authz # 访问控制文件
realm = /var/svn/default-repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错。
#vi /var/svn/default-repos/conf/passwd
[users]
username1 = password1
username2 = password2
可以添加多个,此为用户名密码对。
# vi /var/svn/default-repos/conf/authz
包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
对仓库repos根目录权限设置
[repos:/]
username1 = rw
username2 = r
(注:以上为一个版本库的配置,如果需要对创建其他版本库,则按照以上方式创建一个新目录并配置为其配置相关选项即可)
5. 使用import指令导入文件
#svn import /root file:///var/svn/default-repos
(注:新建的版本库是空的,需要使用import指令导入文件,上面的语句将/root 目录下的文件导入版本库中)
执行这个指令可能会出现这个错误:
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found
问题原因是:
没有设置svn编辑器的环境变量,主要是import、commit中填写comment(即导入和提交更改需要记录的信息)要用到。
解决方法如下
#vi /etc/bashrc
在最后加入:export SVN_EDITOR=vim,保存
# source /etc/bashrc #使更改立刻生效。
重新执行 svn import /root file:///var/svn/default-repos,弹出编辑框,将对版本库做的更改输入后保存即可(同vi/vim的操作一致)。保存后退出即自动提交。或者直接执行 svn import /root file:///var/svn/default-repos -m "注释"。
6. 启动subversion
#svnserve -d -r /var/svn/default-repos –listen-port 8081
(注:--listen-port 给定端口号 这个配置是可选的,subversion默认使用3690端口号,但是当使用多个版本库时,就需要给各个版本库指定端口号了)
7. 导出版本库内容
#svn checkout svn://ip[:port]/repos
至此,subversion就已经安装并配置完毕了,有些小细节需要读者在安装的时候注意就OK了。另外,如果需要在windows上使用版本控制,那么请安装subversion的windows客户端,具体可到 http://tortoisesvn.net/downloads.html 下载。详细的使用方法就google一下或者找度娘吧。
更多推荐
所有评论(0)