搭建SVN服务端

搭建SVN服务端

安装配置SVN服务

yum -y install subversion

rpm -qa subversion

搭建SVN服务端

建立svn版本库数据存储根目录(svndata)及用户,密码权限目录(svnpasswd)

mkdir -p /application/svndata --->数据存储根目录

mkdir -p /application/svnpasswd --->用户,密码权限目录

搭建SVN服务端

建立项目版本库

创建一个新的Subversion项目yunjisuan,其实,类似yunjisuan这样的项目可以创建多个,每个项目对应不同的代码,这里只是以创建一个项目为例演示:

svnadmin create /application/svndata/yunjisuan

tree /application/svndata/yunjisuan/ --->没有tree则需要yum安装

搭建SVN服务端

编辑svn配置文件

cd /application/svndata/yunjisuan/conf/

ls

cp svnserve.conf{,.bak}

vim svnserve.conf

搭建SVN服务端

搭建SVN服务端

12 anon-access = none #禁止匿名访问
13 auth-access = write #验证访问可写
20 password-db = /application/svnpasswd/passwd #密码文件位置
27 authz-db = /application/svnpasswd/authz #验证文件位置

将authz文件和passwd文件拷贝到/application/svnpasswd下

cp /application/svndata/yunjisuan/conf/authz /application/svnpasswd/

cp /application/svndata/yunjisuan/conf/passwd /application/svnpasswd/

ll /application/svnpasswd/

搭建SVN服务端

启动svn服务

svnserve -d -r /application/svndata/

netstat -antup | grep 3690

搭建SVN服务端

解决svnserve启动时的警告问题

source /etc/sysconfig/i18n --->启用中文字符集

cat /etc/sysconfig/i18n

svnserve -d -r /application/svndata/ --->有中文字符集启动没有警告了

搭建SVN服务端

passwd文件及密码设置

vim /application/svnpasswd/passwd

在/application/svnpasswd/passwd文件末尾追加内容

tail -4 /application/svnpasswd/passwd

搭建SVN服务端

authz的授权

egrep -v “#|^$” /application/svnpasswd/authz

vim /application/svnpasswd/authz

编辑authz配置文件进行授权,在authz末尾加入以下几句代码

[aliases]
[groups]
sagroup = stu001,stu002 #新增本行,定义组名
[yunjisuan:/] #定义授权的范围
yunjisuan = rw #用户单独授权
benet = r #用户单独授权
@sagroup = r #组用户授权

搭建SVN服务端

重启动svnserve(可以不用重启)

ps -ef | grep svn

kill 1029

ps -ef | grep svn 

svnserve -d -r /application/svndata/

搭建SVN服务端

搭建SVN客户端

先在本地创建一个目录,起名任意,比如data

鼠标右键点击data目录

svn://192.168.200.135/yunjisuan

选择右键菜单里的SVN Checkout,出现下图:

搭建SVN服务端

如果连接不通,请检查Linux虚拟机的iptables是否关闭

点击OK后,出现下图:

搭建SVN服务端

再次点击OK以后,结束。此时目录里多了一个隐藏的目录,表示此目录已经和svn服务器连通

(1)SVN Checkout:相当于下载,第一次连接svn服务器的时候需要和服务器的对应存储目录进行数据同步,如果服务器的对应目录里有数据文件,那么就会下载到你的本地对应目录里。

(2)SVN Update:更新数据,检查服务器端svn存储目录里是否和本地svn存储目录数据不一致,如果不一致,那么下载改变或新增的部分到本地svn目录里。(不会删除本地目录内容)

(3)SVN Commit:提交数据到svn服务器端存储目录。本地svn存储目录会和服务器端存储目录进行比对校验。会把本地改变的部分和新增的部分同步上传至服务器端。

svn客户端使用测试

向windows的svn存储目录data里放一个空文件

搭建SVN服务端

右键点击data目录,选择SVN Commit

搭建SVN服务端

搭建SVN服务端

打开本地data目录里的文件,随便写点内容后,再次进行SVN commit

搭建SVN服务端

搭建SVN服务端

直接从本地查看服务器端的数据内容

右键点击本地svn存储目录data,选择TortoiseSVN ===>Repo-browser后出现下图

搭建SVN服务端

双击文件可以直接远程打开文件,可以看到里面刚刚被修改后的内容已经更新至服务器端。

删除本地svn存储目录data里的文件,后选择SVN Update

会发现,刚刚删除的文件又重新下载回来了。

继续删除本地svn存储目录data里的文件,后选择SVN Commit

搭建SVN服务端

再次查看服务器端存储目录里,发现文件已经被删除了
搭建SVN服务端

服务端从SVN库提取数据

    svn checkout(co) remotepath localpath
    
    mkdir yunjisuan
    
    cd yunjisuan/
                          
    svn co svn://192.168.200.69/yunjisuan/ /root/yunjisuan/ --username=benet --password=123123

搭建SVN服务端

查看SVN版本库中的数据

svn list file:///application/svndata/yunjisuan

搭建SVN服务端

提交数据到SVN

一次失败的提交

pwd

mkdir [1..5]

ll

svn add * --->提交前需要先把要提交的内容做标记A(相当于windows上勾对号)

svn ci -m "message" --->提交时需要同时-m指定一段话作为备注

搭建SVN服务端

换账户重新Checkout

svn co svn://192.168.200.135/yunjisuan/ /root/yunjisuan/ --username=yunjisuan --password=123123 
换拥有写入权限的账户checkout

Store password unencrypted (yes/no)? yes --->是否作为目录的新账户和密码

搭建SVN服务端

重新提交

svn add *

搭建SVN服务端
搭建SVN服务端

查看服务器端数据

svn list file:///application/svndata/yunjisuan/

搭建SVN服务端