搭建ubuntu环境下的svn版本控制
svn版本控制在ubuntu下可以有两种一种是只有svn,另外一种是和apache2应用服务器搭配起来用,今天做的是只有svn的这种
1.首先是先安装svn版本控制器的软件包,安装命令如下:
sudo apt-get install subversion
2.添加用户组,并将当前系统用户添加到创建的用户组中,本人创建的用户组是subversion,添加命令如下
sudo addgroup subversion #创建用户组 sudo addgroup zhangsan subversion #将zhangsan添加到subversion用户组中,zhangsan为当前系统用户
3.创建版本库,命令如下(最好将版本库创建在home目录下,新建一个文件加)
sudo mkdir svn #创建新的文件夹 sudo mkdir repository #创建版本库文件夹 sudo svnadmin create repository #使用svnadmin 命令创建版本库
创建好了以后的目录结构如下图
4.接下来就是给文件附加权限,否则在项目开发过程中无法保存文件,因为在home目录下的非用户目录创建的文件夹仅有读的权限没有写和删除的权限,附加权限的命令如下:
sudo chown -R www-data:subversion repository sudo chmod -R g+rws repository
添加完命令后,可以验证一下这个文件夹的拥有的权限,验证如下:
ls -l repository/db/txn-current-lock #结果如下 -rw-rwSr-- 1 www-data subversion 0 11月 11 17:15 repository/db/txn-current-lock
5.接下来就是访问了,访问规则如下:
模式 访问方法 file:/// 直接访问本地硬盘上文件仓库 http:// 通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器 https:// 类似 http://,支持 SSL 加密 svn:// 通过自带协议访问 svnserve 服务器 svn+ssh:// 类似 svn://,支持通过 SSH 通道
因为本文没有配置apache以及ssh安全访问因此可以使用直接访问或者通过自带协议访问
直接访问格式如下:
svn co file:///home/svn/myproject #结果如下 取出版本 0。#因为里面没有任何文件所以是0
6.接下来就是访问的设置了,为svn添加用户,修改配置,在repository文件夹下面的conf目录下有这么三个文件夹 authz passwd svnserve.conf
svnserve.conf文件中将下面三行的前面的注释去掉,不能有空格
anon-access = read //匿名只能读
auth-access = write//验证后才能有写的权限
password-db = passwd//密码都在passwd文件中
passwd文件中在[users]下添加用户以及密码,以下面的格式
zhangsan=123456
lisi=123456
在authz文件中对这些用户限定权限
在[groups]下面修改这些用户的操作权限
#创建两种用户组,等号后面的用户都分属这个组内,这些用户必须在passwd文件中存在
admin=zhangsan
development=lisi
#为这些用户创建能够操作的目录以及操作权限,*代表匿名的,没有任何权限
[repository:/]
@admin = rw
* =
[repository:/develop]
@development = rw
* =
7.就是启动服务,启动服务的命令如下:
sudo svnserve -d -r /home/svn
-d 表示svnserver以“守护”进程模式运行
-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库
查看svn这个服务是否已经开启
ps -aux |grep svn
若是开启则显示结果类似与下面
warning: bad ps syntax, perhaps a bogus '-'? See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ root 20333 0.0 0.0 12276 696 ? Ss 17:37 0:00 svnserve -d -r /home/svn zhangsan 20366 0.0 0.0 5888 824 pts/0 S+ 17:39 0:00 grep --color=auto svn
8.最后就是将这个svn这个服务设置成开机启动
(1).创建执行脚本svn.sh(/root路径下)
#!/bin/bash
svnserve -d -r /home/svn
(2).添加可执行权限
#chmod ug+x /root/svn.sh
(3).添加自动运行
#vim /etc/init.d/rc.local
在最后添加一行内容如下:
/root/svn.sh
(4).检查
重启服务器,使用ps -aux |grep svn看看svn进程是否启动了