SVN使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN使用相关的知识,希望对你有一定的参考价值。
SVN概念:
SVN是一个跨平台的开源版本控制系统,SVN会备份并记录每个文件每一次的修改更新变动。我们可以回滚到旧的版本。
端口:3690
使用方法:
先从中央库check out,然后修改自己的代码后在commit
备份:
需要备份所有代码以及所有更改的版本记录。
缺点:
1、当无法连接到中央版本库的环境下,你无法提交代码,看不到代码的历史版本。
2、每次提交都保留原始副本,因此数据库容量会暴增
3、不适合开源系统开发
4、特别适合几个人的小项目
svn和git区别:
git是分布式的版本管理系统,开发者本地也包含一个完整的git仓库
服务运行方式:
1、独立服务器访问SVN://svn.svnserver.com/doc/
2、apache+svn访问http://svn.svnserver.com/doc/ (CSVN)
3、在svn服务器端用http://svn.svnserver.com/doc/
客户端访问方式
1、http://
2、SVN://
svn数据格式
1、BDB(一种事物安全型表类型)
2、FSFS(不需要数据库的存储系统)
#############################################################################
创建项目目录
mkdir -p /application/svndata #项目文件
mkdir -p /application/svnpasswd #密码、权限文件
安装
yum install subversion -y
运行svn:-d守护进程 -r指定数据存储目录
svnserve -d -r /application/svndata
创建一个新的项目sadoc
svnadmin create /application/svndata/sadoc
修改配置文件
vim /application/svndata/sadoc/conf/svnserve.conf
anon-access = none #禁止匿名访问
auth-access = write #认证读写
password-db = /application/svnpasswd/passwd #密码目录
authz-db = /application/svnpasswd/authz #权限目录
复制文件到自定义的密码和权限目录
cd /application/svndata/sadoc/conf/
cp authz passwd /application//svnpasswd/
只允许root看见密码和权限
cd /application/svnpasswd
chmod 700 *
创建用户
vim /application/svnpasswd/passwd
[users]
lmkmike = 123456
lmkzxh = 123456
注意事项
更改svnserve.conf后必须重启,authz和passwd不需要
vim /application/svnpasswd/authz
更改权限
[groups]
sagroup = lmkmike,lmkzxh
[sadoc:/]
lmkmike = rw
lmkzxh = r
@sagroup = r
客户端svn可以通过SVN://192.168.56.100/sadoc/
然后输入用户名和密码即可(checkout和commit)
linux svn客户端checkout命令
svn co svn://192.168.56.100/sadoc /tmp/sadoc --username lmkmike --password 123456
备份
1本地备份整个最新版本,不包括历史版本的信息
svnadmin hotcopy /application/svndata/sadoc/ /tmp1
2、
查看最新版本号
svnlook youngest /application/svndata/sadoc/
所有版本备份
svnadmin dump /application/svndata/sadoc/ > /tmp/fileall
只备份0-2
svnadmin dump /application/svndata/sadoc/ -r 0:2 --incremental > /tmp/fileall0-2
只备份3-4
svnadmin dump /application/svndata/sadoc/ -r 3:4 --incremental > /tmp/fileall3-4
3、新建空库dump、dump1、dump2做还原实验。
svnadmin create /application/svndata/dump
svnadmin create /application/svndata/dump1
svnadmin create /application/svndata/dump2
原因所有版本
svnadmin load /application/svndata/dump < /tmp/fileall
还原0:2
svnadmin load /application/svndata/dump1 < /tmp/fileall0-2
还原0:4
svnadmin load /application/svndata/dump2 < /tmp/fileall0-2
svnadmin load /application/svndata/dump2 < /tmp/fileall3-4
svnsync同步
在备份svn新建sadoc项目
配置相同权限
修改
hooks下面的pre_revprop-change内容只有exit0.
chmod +x pre-revprop-change
初始化
svnsync init file:///application/svndata/sadoc svn://192.168.56.101/sadoc --username lmkmike --password 123456
svnsync init svn://192.168.56.25/sadoc svn://192.168.56.101/sadoc --username lmkmike --password 123456
同步
svnsync sync --non-interactive file:///application/svndata/sadoc --username lmkmike --password 123456
svnsync sync --non-interactive svn://192.168.56.13/sadoc --username lmkmike --password 123456
主SVN修改后备svn会自动同步
vi post-commit
/usr/bin/svnsync sync --non-interactive svn://192.168.56.13/sadoc --username lmkmike --password 123456
属性被锁
svn propdel svn:sync-lock --revprop -r0 svn://192.168.56.13/sadoc
以上是关于SVN使用的主要内容,如果未能解决你的问题,请参考以下文章