专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 SVN服务器搭建流程

SVN服务器搭建流程

更新时间:2022-09-30 10:33:09 来源:动力节点 浏览1328次

搭建svn环境并创建仓库:

1.安装Subversion;

# yum install -y subversion

2.检查是否安装成功(查看SVN版本号)

# svnserve --version

3.创建版本库

//先建目录
# mkdir /data/svn
# cd /data/svn
//创建版本库
# svnadmin create /data/svn/project
# cd project
//会看到自动生成的版本库文件
# ls
conf db format hooks locks README.txt

这样SVN环境搭建成功。

创建用户组和用户

1.进入版本库中的配置目录conf,

# cd conf

# ls

authz passwd svnserve.conf

权限配置文件(authz),用户名口令文件(passwd),svn服务综合配置文件(svnserve.conf)

要注意一点,任何配置文件的有效配置行,都 **不允许存在前置空格** ,否则程序可能会出错,给你一个 ``Option expected`` 的提示。

2.修改权限配置文件(authz)

# vim authz

将用户svnuser1,svnuser2加入snvuser用户组,

用户组svnuser对版本库project具有读和写的权限。

3.配置用户名命令文件(passwd)

# vim passwd

4.配置SVN服务综合配置文件 (svnserve.conf)

#  vim svnserve.conf
//找到以下配置项,将前面的#号去掉,然后做相应的配置
anon-access = none //匿名用户访问权限:无
auth-access = write //普通用户访问权限:读、写
password-db = passwd //密码文件
authz-db = authz //权限配置文件
realm = /data/svn/project //版本库所在

注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错

5.启动svn服务

-r 添加 版本库的根目录
-d 让SVN以deamon的形式运行

# svnserve -d -r /data/svn

如果提示:

svnserve: Can't bind server socket: Address already in use

说明svn已经被启动了,由于我们修改了配置文件,因此需要重启svn服务

//查看svn服务详情
# ps aux | grep svn
790 ? 00:00:00 svnserve
//将svn服务强制停止 其中790为svn服务的ID号,-9是kill的参数
# kill -9 790

或者用:

# killall svnserve

再运行 svnserve -d -r /data/svn,进行启动服务

6.测试服务器:

//我们在web目录测试(/home/www)
#  cd /root/www
#  svn co svn://localhost/project

如果提示:Checked out revision 1.

表示checkout成功

我们添加新文件来测试是否提交成功

#  cd /root/www
#  touch index.php
#  svn add index.php                 //成功的话会显示 A index.php
#  svn commit index.php -m      //"测试提交文件"

假如最后提示:

Adding index.php
Transmitting file data .
Committed revision 2.

则表示我们svn服务器搭建成功!文件已经能够推送了。

7.本地拉取、推送

在本地安装SVN,建立个文件夹,右键点检svn checkout...

点击ok,提示输入用户名和密码

就填刚才我们创建的lsvnuser1或lsvnuser2,和对应的密码即可。

实现svn更新自动同步到web目录:

在web目录中checkout 版本库

#  svn co svn://localhost/project /root/www --username svnuser1 --111111
进入/data/svn/project/hooks下,建立post-commit文件:
#  cd  /data/svn/project/hooks
#  vim post-commit
//在该文件里添加如下代码,保存
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn //这里不用改
WEB_PATH=/root/www/porject  //web目录,如果你的不同,可以改
//这里的用户随便一个就好
$SVN_PATH update $WEB_PATH --username 'svnuser1' --password '111111' --no-auth-cache

保存退出,修改post-commit用户为www目录的用户,给past-commit执行权限:

#  chmod  755  post-commit

即成功完成了。

测试:在本地电脑新建一个文件提交到版本库,查看/root/www/project目录下是否自动更新对应文件。

Linux svn的常用命令

()内为命令简写.

checkout (co) 提取

commit (ci) 提交

update (up) 更新

list (ls) 列表

Linux版本回滚操作

# svn up -r 1

日常维护命令和参数

启动svn服务

svnserve -d -r /data/svn

创建版本库

svnadmin create fs-type fsfs /data/svn/project

查看版本库的信息

svn list file:///data/svn/project

svn list –verbose file:///data/svn/project

导入库的目录结构

svn import /tmp/project/ file:///data/svn/project/ –message “init” (文件夹project下有bo)

删除版本库project下文件夹bo

svn delete svn://192.168.18.10/data/svn/project/bo -m “delete ”

//导出

$svnlook youngest oldrepo

$svnadmin dump oldrepo > dumpfile

//还原

$svnadmin load newrepo < dumpfile

停止subversion服务

ps –aux | grep svnserve

kill -9 ID号

建立SVN存储仓库示例

#mkdir -p /data/svn/repos

#svnadmin create –fs-type fsfs /data/svn/repos

备份以前的SVN库

#svnadmin dump /data/svn/repos > /root/repos2

把备份出来的数据恢复到本地

#svnadmin load /data/svn/repos/ < /root/repos2

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>