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 5月 30 16:22 conf
drwxr-sr-x. 6 root root 233 5月 30 16:22 db
-r--r--r--. 1 root root 2 5月 30 16:22 format
drwxr-xr-x. 2 root root 231 5月 30 16:22 hooks
drwxr-xr-x. 2 root root 41 5月 30 16:22 locks
-rw-r--r--. 1 root root 246 5月 30 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基本相同
- 第一种
删除冲突发生时产生的三个文件
删除冲突文件内多余的符号
把文件编辑到满意的状态
提交- 第二种
设置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 缺少“浏览源代码”按钮