大坑,首先检查下linux防火墙(service firewalld stop)
安装
yum -y install subversion
svnserve --version
显示版本信息,则表示安装成功
mkdir /home/svn
创建版本库目录
svnadmin create /home/svn/pro
pro目录下生成了几个文件,其中conf文件便是配置文件
cd conf
vim passwd 以 user = passwd 的形式编辑用户名和密码
[users]
zhangsan = mima1
lisi= mima2
vim authz
[/]
* = rw (所有用户都可读可写)
[groups] 分组
admin = zhangsan,lisi,wangwu
common = lisi,wang
[/]
@admin = rw
@common = rw
vim svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
钩子 hooks (可以将svn版本库中的内容同步更新到指定目录)
在 /home/svn/pro/hooks下
新建post-commit 文件
#!/bin/sh
export LC_CTYPE="zh_CN.UTF-8"
SVN=/usr/bin/svn
TODIR=/home/www #要强制更新的目录
$SVN update --username name --password passwd $TODIR #执行更新;(切记两个横杆)
chmod a+x post-commit
向svn版本库中导入文件(以导入/home/file/下的文件为例)
svn -m '日志名称' import /home/file/项目名称 file:///home/svn/pro #-m '日志名称' 加上这个拉代码时会显示日志
启动svn服务
svnserve -d -r /home/svn
检出svn库中的内容
mkdir /root/svntest
cd /root/svntest
svn co svn://127.0.0.1/pro
目录下便生成了一个 pro 目录。里面的内容是 版本库中的内容
执行 ll -a 可以看见 .svn 这边是svn的记录
新增几个文件 touch 1.txt
为版本库中提交内容
svn add * (一定要在 pro目录下哦,因为要有 .svn呀)
svn commit -m 'add file'
删除版本库中的文件
svn delete svn://127.0.0.1/pro/er.txt -m 'del'
取消文件的修改
svn revert 回滚
提交冲突时候解决冲突
svn update
svn resolved 现文件最新
svn log 查看提交历史
svn log -v dirname 查看目录的修改信息
svn info 获取当前版本库的基本信息
svn diff 用来显示特定修改的行级 详细信息
svn diff -r 5 1.txt 比较当前 1.txt 与版本5的1.txt的不同。
svn list svn://127.0.0.1/sssmtest 列出版本库中的文件
svn merge -r 22:21 filename 将文件从版本22回退到21