svn服务器的搭建和使用

大纲:

1.什么是svn服务器

2.svn安装

3.svn配置

4.配置svn的服务器目录和自动同步

5.设置svn的开机自启

6.windows下本地安装svn

7.svn的基本使用


1.什么是svn服务器

SVN是Subversion的简称,是一个开放源代码的版本控制系统,用于多个人共同开发同一个项目,共用资源的目的。vn服务器有2种运行方式:独立服务器和借助apache运行,本文是独立服务器的运行方式。

SVN的经典工作方式:

开始新一天的工作:

从服务器下载项目组最新代码。

进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

SVN的几个概念:

check out检出获得文件后,检出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。(对于导入到服务器中的数据,需要检出才能形成一个受svn控制的工作拷贝,才可以进行 add update commit 等操作)

export 简单导出一个版本的数据(把服务器中的数据导出来,相当于复制一份),导出的文件脱离SVN版本控制(导出的就是一个文件,与svn版本没关系),导出后也无法进行Update和Commit操作。导出文件夹下没有.svn目录

import仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系

add是把新创建的文件添加到缓存区(执行后显示一个加号),需commit提交才能真正上传到服务器(显示对号)

update是把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)


2.svn安装

环境:centos

更新yum库

yum update

yum方式安装svn

yum install subversion -y 安装svn

安装完成后,建立svn服务器的文件夹。

mkdir /var/svn

在svn文件夹下,建立svn库的文件夹,并创建库

cd /var/svn

mkdir web

svnadmin create /var/svn/web

查看库文件夹cd /var/svn/web,ls,会发现已经生成了一些配置文件


3.svn配置

进入conf文件夹,有以下几个配置文件:

配置用户和密码

vim passwd

在[users]块中添加用户和密码,格式:帐号=密码,如 myname=123

svn服务器的搭建和使用_第1张图片

配置权限

vim authz

[groups]

group1 = liuxianan

group2 = test1,test2

[/]                #目录

@group1 = rw      #用户组的配置

@group2 = r

* =        #其他用户无权限

test1=rw      #对单一用户的权限配置

svn服务器的搭建和使用_第2张图片

配置svnserve.conf

vim svnserve.conf    删除下面的5个注释

anon-access =read  #匿名用户可读

auth-access =write    #授权用户可写

password-db = passwd      #使用哪个文件作为账号文件

authz-db = authz    #使用哪个文件作为权限文件

realm =/var/svn/web    # 认证空间名,版本库所在目录

启动SVN服务

svnserve -d -r /var/svn

ps:关闭svn服务指令:killall svnserve,可通过ps -ef | grep svn来查看svn服务是否运行。


4.配置svn的服务器目录和自动同步

创建网站/服务的目录:(svn的代码要实现线上线下同步,必须先通过svn进行提交,提交后的代码才能同步,因此先把代码下载到本地,通过提交后,会自动更新到线上的目录,这里要创建的是线上同步目录)

cd /web    #你的网站/服务的上层目录

svn co svn://localhost/web    #localhost的根目录是你启动svn时指定的目录(即/var/svn),库文件夹是该目录下web目录ls    #可以发现已经生成了web目录,web目录下有一个隐藏的.svn目录,作为svn同步的标识

#通过post-commit钩子脚本实现自动同步

cd /var/svn/web/hook 

cp post-commit.tmpl post-commit

编辑post-commit钩子脚本   vim post-commit 修改里面的如下内容

export LANG=zh_CN.UTF-8

SVN=/usr/bin/svn    #这个是安装好的时候查看成功与否看到的那个目录(等号两边不能有空格)

WEB=/home/myweb    #这个就是你每次完成提交svn自动提交到的那个目录(等号两边不能有空格)

$SVN update $WEB --username myname( 你刚才设置的用户名 ) --password 123( 你刚才设置的密码) --no-auth-cache

给svn文件夹755权限

chmod 755 -Rf /var/svn/

测试

./post-commit  #测试是否可同步,打印出版本0,则成功。


5.设置svn的开机自启

查看 systemd 里 svn 的配置文件:

vim /lib/systemd/system/svnserve.service

找到svnserve的配置文件地址:EnvironmentFile=/etc/sysconfig/svnserve  #无需执行

编辑vim  /etc/sysconfig/svnserve

将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,即/var/svn,:wq 保存退出

设置开机自启动:systemctl enable svnserve.service

重启reboot,测试是否自启动:ps -aux | grep svn


6.windows下本地安装svn

进入TortoiseSVN官网下载安装TortoiseSVN,并下载中文语言包。

svn服务器的搭建和使用_第3张图片
svn服务器的搭建和使用_第4张图片

正常安装即可。

发现以下选项即SVN安装成功:

svn服务器的搭建和使用_第5张图片

选择setting,设置语言:

svn服务器的搭建和使用_第6张图片


7.svn的基本使用

鼠标右键,点击SVN检出,出现以下界面:

svn服务器的搭建和使用_第7张图片

以上标红的位置填:svn://IP/web,IP是你的服务器IP,web是你的仓库名(若启动服务时设置的目录是web仓库目录,则这里无需加/web后缀)

输入账号的密码,检出成功。

进入目录,创建几个文件,右键目录点击更新,然后点击提交,可将文件提交到服务器。这时,你的服务器刚才设计的网站目录也会自动同步这些文件。



完。

欢迎访问作者网站:https://pmhuiyilu.com

你可能感兴趣的:(svn服务器的搭建和使用)