跟着我一起实现资源共享,同步开发!!!

SVN

一、SVN说明

是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理

二、centos7 搭建svn服务器

1、安装svn服务器:

yum install subversion -y

2、配置svn服务器:

建立svn版本库根目录及相关目录即svndata及密码权限命令svnpasswd;

mkdir -p /opt/svn

3、启动svn服务:

svnserve -d -r /opt/svn/
        参数:
            -d:表示后台运行守护模式;
            -r:表示svn服务的根目录;

检测svn端口3690是否已经监听:
netstat -lntup | grep 3690

4、建立版本库:

在/opt/svn/目录下,创建项目test:

svnadmin create /opt/svn/test

会自动创建出一系列固定的目录:

主要目录说明:
   conf目录:主要是配置文件、登录用户、密码认证;
   hooks目录:主要是svn的钩子脚本模板,使用时去掉.tmpl后缀即可,钩子脚本实际上就是代码提交前后,可以分别执行的脚本,脚本可用perl、shell、python等语言编写,该目录里面脚本文件名代表提交代码执行的不同时机,如提交代码前执行的脚本pre-commit,提交代码后执行的脚本post-commit,更多详情自行学习;

5、修改配置文件:

vim /opt/svn/test/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

anon-access:未登录用户的权限

auth-access:已登录用户的权限

password-db: 用户密码文件目录位置

authz-db : 权限文件目录位置

如果把密码文件和授权文件统一管理

可以把用户和密码文件放到自定义的目录中:

mkdir /opt/svnpasswd/
cd /opt/svn/test4/config
cp authz passwd /opt/svnpasswd/
vim /opt/svn/test/conf/svnserve.conf

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

a、配置passwd文件:

[users]
zn=zn123
dzw=dzw123
ycw=ycw123
cyh=cyh123

passwd配置文件说明:
格式为:svn账号=svn密码
账号和密码可随意指定;

b、配置authz:

1.权限配置文件中出现的用户必须已经在用户配置文件中定义;
2.对权限配置文件的修改立即生效,不必重启svn;
3.一个用户组可包含多个用户,用户间用逗号分隔;
4.版本库目录格式:
[<版本库>://项目目录]
@<用户组名> = <权限>
<用户名> = <权限>

其中,方括号内部分可有多种写法:
    [/]:表示根目录及以下,根目录是svnserve启动时指定的,[/]表示对全部版本库设置权限;

    [repos:/]:表示对版本库repos设置权限;

    [repos:/sadoc]:表示对版本库repos中的sadoc项目设置权限;

    [repos:/sadoc/oldboy]:表示对版本库repos中的sadoc项目的oldboy目录设置权限;

    权限主体可以是用户、用户组或*,用户组在前面加@,*表示全部用户;

    权限可以是w、r、wr和空,空表示没有任何权限;
    authz中每个参数都要顶格写,开头不能有空格;
    对于组,要以@开头,而用户不需要;

单版本库,不需要指定版本库的名称

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
kf4=zn,ycw,dzw,cyh
kf5=zn,dzw

[/]
@kf5=rw
ycw=rw
cyh=r

多版本控制配置

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
kf4=zn,ycw,dzw,cyh
kf5=zn,dzw

[test3:/]
@kf4=rw

[test4:/]
@kf5=rw

6、重启svn服务:

//多版本
pkill svnserve
svnserve -d -r /opt/svn

//单版本
pkill svnserve
svnserve -d -r /opt/svn/test4

注意:
更改svnserve.conf需要重启svn,更改authz、passwd文件时不需要重启;

检查3690端口是否处于监听状态,至此svn服务器搭建完成;下面是svn客户端的安装与使用;

三、主要命令说明

1.导入svn原始目录:

先创建svn目录: 
mkdir /data/oldboy -p
在其目录下,创建3个目录:
cd /data/oldboy; mkdir trunk branch tags -p
导入:
svn import /data/oldboy svn://192.168.255.12/sadoc/ -m "import tree"

2.从svn库提取数据:

mkdir /data/test
svn checkout svn://101.200.48.99/test4 D:/ --username zn --password zn123
或简写:
svn co svn://192.168.255.12/sadoc /data/test --username=oldboy --password=oldboysecret
 或:
svn co file:///application/svndata/sadoc /data/test --username=oldboy --password=oldboysecret

注意:首次使用svn用checkout;后面再用提取数据不用再使用用户名和密码:

3.查看svn中的数据:

svn list --verbose svn://101.200.48.99/test4
或(都一样):
svn ls --verbose  svn://101.200.48.99/test4 
svn cat  svn://101.200.48.99/test4

4.向svn中提交数据:

svn add /data/test/trunk/test2.txt
svn ci -m "test2.txt"  /data/test/trunk/test2.txt

ci简称:commit;
co简称:checkout;

注意:提交时,先add,再commit;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章