Linux上搭建SVN服务
环境:centos7
一、搭建svn服务
1. 安装svn
yum -y install subversion
2. 创建一个目录作为svn服务的地址(svn://192.168.0.2:3690 访问的目录,作为所有仓库的根目录)
mkdir /home/svn
3. 在svn目录下为一个需要版本控制的项目创建仓库,一个svn服务可以有多个仓库
svnadmin create /home/svn/tp5
tp5目录下不要直接添加,删除,随意修改文件,要使用svn客户端操作。否则仓库可能报废
4. 为项目配置用户和权限
cd /home/svn/tp5/conf
(1)设置访问的用户和密码
vim passwd #加入如下代码:
[users] #表示访问svn服务根目录
user1 = 1234 #创建了2个用户及密码
user2 = 123
(2)设置用户的权限(可分组)
vim authz 加入如下代码:
[/] #仓库的权限
user1 = rw #可读可写
user2 = r #只读
*= #其它用户没有任何权限
或分组给权限:
[group]
group1 = user1,user2 #group1组里有2个用户:user1,user2
[/] #访问根目录的权限
@group1 = rw #这样user1和user2都有rw权限
5. 在服务配置文件中引入设置
vim svnserve.conf #加入如下代码
[general]
auth-access = write #授权用户访问仓库的权限。值有3个:none read write ,write代表可读可写
anon-access = read #匿名用户只读
password-db = passwd #使用的密码文件
authz-db = authz #使用的授权文件
realm = /home/svn/tp5 #仓库根目录
6. 启动配置好的SVN服务
svnserve -d -r /home/svn # -d 以守护进程启动 -r 仓库目录
二、svn客户端使用(win10)
1. 下载客户端工具tortoiseSVN https://tortoisesvn.net/downloads.html
2. 从仓库检出代码
3. 编写核心代码并更新到仓库
三、linux上svn常用命令
1. svn checkout svn://xxx 或 svn co svn://xxx
2. svn add filename #往版本库添加新的文件
3. svn commit -m “提交描述信息“ [-N] [--no-unlock] file1 file2 简写 svn ci #将改动的文件提交到版本库
4. svn lock -m “lock test file“ test.php #加锁
5. svn unlock test.php #解锁
6. svn delete path -m “delete test fle” 简写 svn rm
7. svn status -v path #path是项目工作根目录
8. svn log path #查看项目的日志
9. svn info filename #查看文件详细信息
10. svn diff filename #将修改的文件和基础版比较差异
11. svn diff -r m:n filename # 比较文件在m版和n版的差异
12 . svn list path 简写 svn ls #列出path目录下所有属于版本库的文件和目录
三、创建钩子脚本使web目录项目与仓库代码同步
1. 在web目录下检出项目
svn checkout svn://localhost/tp5 #回车后要输入linux用户密码,svn用户名和密码
2. 在svn仓库下,hooks目录下创建钩子脚本
cd /home/svn/tp5j/hooks
cp post-commit.temp post-commit
chmod 775 post-commit
vim post-commit #加入如下代码:
#!/bin/sh
export LANG=en_US.UTF8 #设置文件导出的编码方式
SVN=/usr/bin/svn #svn命令的路径
WEB=/usr/local/nginx/www/tp5 #项目路径
$SVN update $WEB --username xiaobao --password 1234 #执行更新操作
并注释掉原来文件中的代码。这样每次提交代码到仓库后,web目录下的项目会自动执行更新操作