Svn(subversion)是一个开源代码管理的控制系统,用来管理和存储开发的源代码,基于C/S模式。能够单独提供服务,也能够结合http服务来实现。html
运行方式 | 运行端口 | 访问方法 |
svn单独服务 | 3690 | svn:// |
http结合服务 | 80 | http:// |
下面开始搭建svn服务web
(1)安装svn 和 apache 服务,其中mod_dav_svn是用来衔接svn和apache的。数据库
yum –y install subversion httpd mod_dav_svn
(2)查看是否注册端口apache
cat /etc/services | grep svn –color
(3)建立存放版本库vim
mkdir /web
(4)建立web项目实例浏览器
svnadmin create /web/www.demonxian3.cn
svnadmin create /web/www.demonxian2.cn
(5)查看svn版本相关文件服务器
能够在经过svnadmin建立的目录看到会生成一些文件。运维
目录 | 做用 |
dav | 提供apache和mod_dav_svn使用的目录,这个要本身手动建立 |
db | 存放版本控制的数据库文件 |
hooks | 存放hook脚本文件 |
locks | 存放svn监控锁定数据的目录,用来追踪存取文件库的客户端 |
conf | 存放配置文件(用户访问帐号和权限等) |
format 文件 | 存放一个整数表示当前的文件库配置的版本 |
下面是conf目录的文件内容svn
文件 | 做用 |
authz | 认证权限的配置 |
passwd | 用户密码的配置 |
svnserve | 服务器相关配置 |
(1)修改svnserve服务配置工具
vim /web/www.demonxian3.cn/conf/svnserve.conf
下面几个字段默认都是注释的,须要把注释去掉
anao-access = read #表示匿名用户可读 值有:read write none
auth-access = write #表示认证用户可写,值同上
password-db = passwd #表示指定密码库的配置文件
authz-db = authz #表示指定认证权限配置文件
realm = www.demonxian3.cn #登陆提示信息
注意上面字段必须顶格,即前面不能留空格,不然会报错
(2)修改passwd用户密码配置
vim /web/www.demonxian3.cn/conf/passwd
添加三个用户,密码均为123456
(3) 修改authz权限配置
vim /web/www.demonxian3.cn/conf/authz
在groups域 里定义一个CG组,组员有demon1,dmeon2
在 根域(本身写上的)里定义权限,CG组只有读权限,demon3可写可读,其余人无权限
svnserve -d -r /web/ #-d 以守护运行 -r 以root用户运行 web 就是本身建立的软件版本库
查看端口
svn经常使用的命令
import | 上传代码 |
checkout | 下载代码 |
update | 更新代码 |
status | 查看状态 |
diff | 差别检测 |
log | 历史记录 |
list | 显示目录 |
cat | 查看内容 |
resolve | 解决冲突 |
switch | 切换版本库 |
revert | 恢复 |
add | 增长 |
delete | 删除 |
copy | 复制 |
move | 移动 |
更多请参见http://blog.csdn.net/ithomer/article/details/6187464
mkdir local #建立本地开发目录 touch local/1.html local/2.html #建立模拟web页面 svn import /root/local/ file:///web/www.demonxian3.cn/ -m "first edit" #导入 svn checkout svn://192.168.1.112/www.demonxian3.cn/ download #取出代码
1.取代码时会弹出身份验证,默认是root用户,回车便可输入用户名和密码。
2.须要注意登陆的用户须要有读取权限不然不能下载
3.取出代码后会在当前生成download目录,在里面进行相关的代码开发便可
下面模拟代码开发后的更新。
touch download/3.html echo “hello world” > 2.html svn add 3.html #在svn里同步添加新文件 svn commit –m “second edit” #提交代码,这里也须要用户验证。
若是输入的帐号和密码没有写入的权限,会写入失败
下面来搭建http + svn 服务
vim /etc/httpd/conf.d/subversion.conf
若是看到两个字段则表示引入成功
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
两个模块的物理路径
/etc/httpd/modules/mod_authz_svn.so
/etc/httpd/modules/mod_dav_svn.so
vim /etc/httpd/conf.d/subversion.conf #在参照末尾location标签添加下面的内容
<Location /web>
DAV svn
SVNParentPath /web #指定svn根目录
AuthType Basic #Basic认证方式
AuthName ”www.demonx.cn” #认证显示提示信息
AuthUserFile /web/svn/passwd #用户密码文件
AuthzSVNAccessFile /web/svn/authz #用户配置文件
Require vaild-user #要求用户认证不准匿名
</Location>
3.建立apache访问svn相关配置文件
mkdir /web/svn
建立用户密码文件并配置密码
htpasswd –c /web/svn/passwd dem1 #参数-c表示建立文件 htpasswd /web/svn/passwd dem2
建立权限配置文件
vim /web/svn/authz #添加下面的内容
[groups]
all = dem1,dem2
[/]
dem1 = rw
[www.demonxian3.cn:/]
@all = rw
[www.demonxian2.cn:/]
dem1 = rw
dem2 = r
service httpd restart
而后使用浏览器访问,会发现须要用户认证
下面使用小乌龟工具来访问svn
使用小乌龟进行代码的上传和下载,虽然这个是开发人员作的事,但做为运维人员多少也应该了解一点。下面是小乌龟的下载的地址
http://tortoisesvn.net/downloads.html
下载好后会在右键生成svn相关插件
配置相关选项,使用svn服务访问配置以下
注意URL上不能把根目录/web也填写上去了。
输入用户名和密码,不要保存
若是使用httpd服务访问svn版本管理器,配置以下
成功把代码down下来了,提交同样点击右键commit便可,若是有时候上交失败以下
颇有可能你的目录权限不够,修改一下便可 如个人: chmod -R 777 /web