SVN之服务器端环境搭建

SVN之服务器端环境搭建

一 SVN的工作机制

  1. C/S结构图
    在这里插入图片描述
  2. 基本操作
    (1)检出:checkout
    把服务器端版本库内容完整下载到本地, 在整个开发过程中只做一次。
    (2)更新:update
    把服务器端相对于本地的新的修改下载到本地。
    (3)提交:commit
    把本地修改上传到服务器。

二 服务器端环境搭建

  1. 安装服务器端程序
yum install -y subversion

验证:

[root@rich~]#svn --version 
svn,版本 1.6.11(r934486) 编译于 Aug172015,08:37:43

可使用以下的版本库访问模块:
(1)ra_neon: 通过 WebDAV 协议使用 neon 访问版本库的模块。
– 处理“http”方案
– 处理“https”方案
(2)ra_svn: 使用 svn 网络协议访问版本库的模块。 – 使用 CyrusSASL认证
– 处理“svn”方案
(3)ra_local: 访问本地磁盘的版本库模块。
– 处理“file”方案
2. 创建并配置版本库
(1)创建版本库目录

mkdir -p /var/svn/repository 

(2)在版本库目录下创建具体新项目目录

cd /var/svn/repository 
mkdir pro_oa 

(3)创建SVN版本库

svnadmin create /var/svn/repository/pro_oa

(4)版本库内容
在这里插入图片描述
3. 配置SVN对应的服务器
(1)思路
在这里插入图片描述
(2)SVN服务:svnserve,默认情况下不是开机自启动的

[root@richrepository]# chkconfig|grep svn 
svnserve 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭 
[root@richrepository]#chkconfig svnserve on 
[root@richrepository]#chkconfig|grep svn 
svnserve 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

对应可执行脚本文件路径:/etc/rc.d/init.d/svnserve,注意备份
(3)SVN服务具体配置

原版:
args="--daemon --pid -file=${pidfile} $OPTIONS"
修改版:
args="--daemon --root 版本库根目录 --listen-port 指定端口号 --pid -file=${pidfile} $OPTIONS"
例如:
args="--daemon --root/var/svn/repository --listen-port 2255 --pid -file=${pidfile} $OPTIONS"
使用默认端口号的配置方式
args="--daemon --root/var/svn/repository --pid -file=${pidfile} $OPTIONS"
  1. 启动SVN服务
[root@richinit.d]#service svnserve start 
正在启动 svnserve:[确定] 
[root@richinit.d]#service svnserve status 
svnserve(pid 3443) 正在运行... 
[root@richinit.d]#netstat -anp | grep:2255 
tcp 0 00.0.0.0:2255 0.0.0.0:* LISTEN 3443/svnserve 
[root@richinit.d]#ps -ef | grep svnserve | grep -v grep 
root 3443 1 0 11:41 ? 00:00:00 /usr/bin/svnserve --daemon --root 
/var/svn/repository--listen-port2255--pid-file=/var/run/svnserve.pid 
[root@richinit.d]#cat /var/run/svnserve.pid 
344

三 命令行客户端

  1. 创建两个工作区目录模拟两个开发人员
mkdir -p/root/workspace/harry 
mkdir -p/root/workspace/sally
  1. 检出
    (1)作用:完整下载版本库中的全部内容
    (2)命令: svn checkout svn://192.168.70.140/pro_oa./
    (3)附加效果
    ① 在指定目录下创建 .svn 目录
    ② 保存本地目录和文件状态信息,用来和svn服务器进行交互
    (3)工作副本
    ① .svn 所在的目录
    ② 版本控制相关操作都需要在工作副本目录下执行。例如:提交、更新等等 这样的操作
    ③ 为了保证工作副本能够正常和服务器进行交互,请不要删除或修改.svn 目 录中的内容。

  2. 添加
    (1) SVN 要求提交一个新建的文件前先把这个文件添加到版本控制体系中
    (2)命令:svn add 文件名

  3. 提交
    (1)要求1:附加日志信息
    ① 日志信息相当于写 Java 代码时的注释,用来标记本次操作所做的修改
    命令: svn commit-m"xxx"[文件名]
    (2)要求2: 必须具备相应的权限
    ① 使用文本编辑器打开版本库根目录**/conf/svnserve.conf 文件**
    在这里插入图片描述
    把匿名访问配置注释打开。注意:行的开头不能有空格

[root@richharry]#svn commit hello.txt 
svn: 提交失败(细节如下): svn:/root/workspace/harry/hello.txt” 尚未纳入版本控制 
[root@richharry]#svn add hello.txt 
A hello.txt 
[root@richharry]#svn commit hello.txt 
svn: 提交失败(细节如下): svn: 无法使用外部编辑器获得日志信息;考虑设置环境变量 $SVN_EDITOR,或者使用 --message(-m)--file(-F) 选项 
svn: 没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量,运行时的配置参数中也没有 “editor-cmd” 选项 
[root@richharry]#svn commit-m "Myfirstcommit" hello.txt 
svn: 提交失败(细节如下): svn: 认证失败 
[root@richharry]#svn commit-m "Myfirstcommit" hello.txt 
增加 hello.txt 
传输文件数据. 
提交后的版本为 1
  1. 查看服务器端文件内容
[root@richharry]#svn list svn://192.168.70.140/pro_oa 
good.log 
hello.txt
  1. 更新操作
    (1)作用::把服务器端文件所产生的所有修改下载到本地
    (2)命令:svn update [文件名]

四 冲突

  1. 过时的文件
    (1)概念:在一个相对服务器端版本来说是旧版本的基础上进行了修改的文件
    (2)要求::所有过时的文件都必须先执行更新操作,更新后在最新版基础上修改的 文件才允许提交。
  2. 冲突的产生
    (1)条件1:本地当前编辑的文件已经过时
    (2)条件2:从服务器端更新下来的修改和本地的修改在“同文件同位置”不一致
  3. 冲突的表现
    (1)文件内
    在这里插入图片描述
    (2)目录内
    在这里插入图片描述
    三个版本的内容

在这里插入图片描述
4. 冲突手动解决
(1)删除冲突发生时产生的三个多余文件
(2)删除冲突文件内多余的符号
(3)把文件编辑到满意的状态
(4)提交
5. 冲突的半自动解决
(1)设置SVN_EDITOR环境变量
在这里插入图片描述

vim /etc/profile 

SVN_EDITOR=/usr/bin/vim 
export SVN_EDITOR

source /etc/profile
echo $SVN_EDITOR

(2)解决过程
使用e选项进入文件内容编辑界面
进入vim编辑器编辑文件内容
在这里插入图片描述
编辑完成后使用r选项标记为已解决
6. 减少冲突的发生
(1)尽可能在修改文件前先进行更新操作,尽量在最新版基础上修改文件内容。
(2) 尽量减少多人修改同一个文件的可能性
(3) 加强团队成员之间的沟通。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可网页添加账号和控制,下面是安装心得 1.到http://phpstudy.net/download.html下载JspStudy JSP环境一键安装包,解压,进行安装,安装好后,选择其他选项菜单-JspStudy 设置-口常规设置,进入后全做修改PHP目录需先分开解析,选择 分开解析 点应用 2.安装Setup-Subversion-1.8.17 安装时候选择Apache 2.4.X 3.安装C++ 否者修改下面数据后重启JspStudy-Apache程序会启动不了 安装C++需要重启电脑 4.进入Subversion安装目录\Subversion\bin\ 把 mod_authz_svn.so和mod_dav_svn.so 拷贝到 JspStudy\Apache\modules 目录下 5.进入Subversion安装目录\Subversion\bin\ 把 libsvn_delta-1.dll libsvn_fs-1.dll libsvn_repos-1.dll libsvn_subr-1.dll 拷贝到 JspStudy\Apache\bin 目录下 6.修改JspStudy\Apache\conf\httpd.conf文件 查找LoadModule dav_module modules/mod_dav.so把前面#号取消掉 查找LoadModule dav_fs_module modules/mod_dav_fs.so把前面#号取消掉 添加LoadModule dav_svn_module modules/mod_dav_svn.so 添加LoadModule authz_svn_module modules/mod_authz_svn.so 如果安装svnadmin-3.0.5在最下面添加 <Location /svn/> DAV svn SVNListParentPath on SVNParentPath D:/svn AuthType Basic AuthName "Subversion repositories" AuthUserFile D:/svn/passwd.http AuthzSVNAccessFile D:/svn/authz Require valid-user </Location> RedirectMatch ^(/svn)$ $1/ 7.解压svnadmin-3.0.5.zip将svnadmin.war 移动到JspStudy\tomcat\webapps 8.启动tomcat,让tomcat自行解压war包,然后编辑数据库配置文件的#mysql段,使其可以正常连接数据库 JspStudy\tomcat\webapps\svnadmin\WEB-INF\jdbc.properties #MySQL MySQL.jdbc.driver=com.mysql.jdbc.Driver MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8 MySQL.jdbc.username=root MySQL.jdbc.password=root 9.把phpMyAdmin解压到\JspStudy\phproot目录下 9.1.mysql创建svnadmin库导入svnadmin项目mysql数据库和语言包 mysql5.sql lang/en.sql 10.创建SVNsvnadmin create d:\svn\test 12.访问127.0.0.1:8080/svnadmin 用户名和密码是admin 进入后生成一个用户赐予用户test数据库的读写权限 11.访问127.0.0.1能看见库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值