subversion

Posted 丶落幕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了subversion相关的知识,希望对你有一定的参考价值。

使用步骤

1.安装

代码如下(示例):

#yum安装
yum install -y subversion
#查看SVN版本
svn --version

2.创建并配置版本库

代码如下(示例):

#创建版本库目录
mkdir -p /var/svn/repository
#进入目录
cd /var/svn/repository/
#创建具体项目目录
mkdir pro_oa && cd ./pro_oa
#创建SVN版本库
svnadmin create /var/svn/repository/pro_oa
#查看目录ll
drwxr-xr-x. 2 root root  76 530 16:22 conf
drwxr-sr-x. 6 root root 233 530 16:22 db
-r--r--r--. 1 root root   2 530 16:22 format
drwxr-xr-x. 2 root root 231 530 16:22 hooks
drwxr-xr-x. 2 root root  41 530 16:22 locks
-rw-r--r--. 1 root root 246 530 16:22 README.txt

hooks目录:放置hook脚步文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库配置文件(仓库用户访问账户,权限)

3.启动服务

代码如下(示例):

#查看svn服务
systemctl list-unit-files|grep svn
#结果(svnserve.service)
#启动服务(指定服务的根目录,具体参数可以用svnserve --help查看)
svnserve -d -r /var/svn/repository/
#查看服务
ps -ef|grep svn
#关闭服务
killall svnserve

4.命令行客户端

代码如下(示例):

#创建两个工作区目录模拟两个开发人员
mkdir -p /root/workspace/harry
mkdir -p /root/workspace/sally
#进入harry
cd harry

5.检出操作

代码如下(示例):

#执行检出(./代表检出到当前目录)
svn checkout svn://192.168.59.129/pro_oa ./
#会提示(取出版本 0。)
#查看隐藏文件(会发现有一个.svn文件,类似.git)
ls -A
#创建文件(随便写点什么)
vim hello.txt

6.提交操作

代码如下(示例):

#提交需要两个条件 1. -m	2.权限(版本库svnserve.conf中修改)
#添加(纳入版本控制)
svn add hello.txt
#提交(后面可以带文件名也可以不带,不带就是提交全部)
svn commit -m "new file hello.txt" hello.txt
#查看版本控制中的文件
svn list svn://192.168.59.129/pro_oa
#查看文件详细版本信息
svn info good.log
#更新(可以带文件名,也可以不带,不带更新所有)
svn update

修改svnserve.conf(示例):
在这里插入图片描述

7.冲突

代码如下(示例):

冲突是因为文件过时
需要更新之后在提交
而单在两人在相同处位置修改,导致svn无法判断时,则需要人工干预
和git基本相同

  1. 第一种
    删除冲突发生时产生的三个文件
    删除冲突文件内多余的符号
    把文件编辑到满意的状态
    提交
  2. 第二种
    设置SVN_EDITOR环境变量
    cd /etc
    #备份
    cp profile profile.bak
    #编辑
    vim profile
    #文件末尾添加
    SVN_EDITOR=/usr/bin/vim
    export SVN_EDITOR
    #重新加载配置文件
    source /etc/profile
    #打印环境变量
    echo $SVN_EDITOR
    #e选项直接编辑,保存后r选项标记已解决,随后提交修改

8.减少冲突的发生

代码如下(示例):

尽可能在修改文件前先进行更新操作,尽量在最新版基础上修改文件内容
尽量减少多人修改同一个文件的可能性
加强团队成员之间的沟通


总结

基本和git差不多

以上是关于subversion的主要内容,如果未能解决你的问题,请参考以下文章

带有 Subversion 的 Trac 缺少“浏览源代码”按钮

避免让 subversion 修改 Linux 文件权限。

SVN源代码管理规范

使用subversion搭建SVN

使用IDEA subversion插件从SVN服务器上check out 代码

subversion