
Subversion(SVN)是一个开源版本控制系统,它管理随时间变化的数据。这些数据存储在中央数据存储库中,这很像普通的文件服务器。它将记住每一个文件的变化,以便您可以恢复文件到旧版本或浏览文件的变化历史。
本文内容:
Linuxsvn服务器部署
Linuxsvn客户端命令 *** 作
Linuxsvn备份和恢复
一、linuxsvn服务器部署1.安装svn
[root@杨~]#yuminstall-ysubversion
[root@杨~]#svnserve-version
svnserve,版本1.6.11(r934486)
2.创建SVN版本库
[root@杨~]#mkdir/data/svn
[root@yang~]#SVNadmincreate/data/SVN/project
[root@yangproject]#ls/data/SVN/project/
confdb格式挂钩锁定README.txt
3.配置SVN
[root@yangproject]#CD/data/SVN/project/conf/
[root@yangconf]#ls
authzpasswdsvnserve.conf
文档描述:
1)svnserve.conf:在SVN服务配置文件下。
2)passwd:用户名密码文件。
3)AuthZ:SVN权限配置文件。
Svnserve.conf文件
该文件配置项分为以下五项:
Anon-access:控制未经身份验证的用户对版本库的访问权限。
Auth-access:控制经过身份验证的用户对版本库的访问权限。
Password-db:指定用户名密码文件名。
Authz-db:指定权限配置文件的文件名,通过权限配置文件可以实现基于路径的访问控制。
Realm:指定版本库的认证域,即登录时提示的认证域名。如果两个版本库的认证域相同,建议使用相同的用户名和密码数据文件。
配置如下:
[root@yangconf]#grep-E"anon-access=|auth-access=|password-db=|authz-db=|realm="SVNserve.conf
匿名访问=无
授权访问=写入
密码-db=passwd
authz-db=authz
realm=/data/svn/project
密码文件
它用于配置用户名和密码。
[root@yangconf]#猫密码
[用户]
杨云=阳云护照
test=testpasswd
Authz文件
配置用户访问权限
[root@yangconf]#catauthz|grep-v'#'
[别名]
[组]
项目_w=杨云
project_r=测试
[/]
project_w=rw
project_r=r
4.启动svn服务
[root@yangconf]#SVNserve-d-r/data/SVN
5.初始化svn数据
[root@yangjango]#SVN导入我的站点文件:///data/svn/project/-m'初始导入'
目录mysite将被复制到项目下的版本库中。
[root@yangjango]#SVN列表文件:///data/svn/project
manage.py
我的网站/
静态/
模板/
web02/
导入后,原始目录树不会转换为工作副本。为了开始工作,您仍然需要运行svncheckout来导出工作副本。
二、linuxsvn客户端命令 *** 作1.将文件签出到本地目录。
Svcheckout路径(路径是服务器上的目录)
缩写:svn公司
示例:
SVNcoSVN://115.28.24.178/project-username=杨云-password=yangyunpasswd
#文件的指定版本
SVNcoSVN://115.28.24.178/project-username=杨云-password=yangyunpasswd-r5
2.向本地版本库中添加新文件。
Svaddfile#该命令只能在检出的路径中 *** 作。
例如:
cp/root/123.txt./
将123.txt添加到本地库
A123.txt
3.将更改的文件提交到版本库。
Svcommit-m"日志消息"[-n][-no-unlock]路径(如果选择了锁定保护,请使用-no-unlock开关)
缩写:svnci
示例:
Svcommit123.txt-m'add123.txt'#只会提交123.txt
Svcommit-m'add123.txt'#默认提交当前目录下的所有文件。
Svcommit*。txt-m'add123.txt'#也可以在常规匹配文件中提交
4.锁定/解锁
svnlock-m"LockMessage"[-force]路径
例如:
svn锁-m“锁测试文件”test.php
svn解锁路径
5.更新到某个版本。
svn更新-rm路径
例如:
SVUPDATE如果后面没有目录,默认情况下当前目录和子目录下的所有文件都会更新到最新版本。
Svupdate-r200test.php(将版本库中的文件test.php恢复到版本200
Svupdatetest.php(已更新,与版本库同步。如果提交时提示过期,则是由于冲突。您需要首先更新和修改文件,然后清除svnresolved,最后提交commit。
缩写:svnup
6.删除文件
svn删除路径-m“删除测试文件”
例如:SVN删除SVN://192.168.1.1/pro/domain/test.PHP-m“删除测试文件”
或者直接SVN删除test.php,然后svnci-m'删除测试文件'',这是推荐的。
缩写:svn(del,remove,rm)
7.检查日志。
svn日志路径
例如,test.phpSVN日志显示该文件的所有修改记录及其版本号的变化。
8.检查文件详细信息。
svninfopath
比如SVNinfotest.php#可以知道路径的版本、时间、提交者等信息。
9.比较不同之处。
Svdiff路径(将修改后的文件与基本版本进行比较)
例如:test.phpSVN差异
Svdiff-rm:n路径(比较版本m和版本n的区别)
例如,test.php#可以知道SVNDiff-R200:201修改了什么。
缩写:svndi
10.将两个版本之间的差异合并到当前文件中。
svn合并-rm:n路径
比如:test.phpSVN合并-R200:205(版本200和205的差异合并到当前文件,但是总会有冲突,需要处理)
1.SVN帮助
svn帮助
svn帮助配置项
12.版本库下的文件和目录列表
Svlistpath#显示路径目录下属于版本库的所有文件和目录。
缩写:svnls
13.在版本控制下创建一个新目录。
Svmkdir:在版本控制下创建一个新目录。
用法:
svmkdirpath#的效果等同于mkdir测试;svn添加测试;
14.恢复本地修改。
Svrevert:恢复原始未更改的工作副本文件(恢复大多数本地修改)。
还原:
用法:还原路径...
注意:此命令不会访问网络,但会解决冲突情况。但是,它不会恢复已删除的目录。
三、linuxsvn备份与恢复1.完整备份:
curr=`svnlookyoursely/data/SVN/project/`#这里是最新版本的查询项目目录。
svnadmindump/data/SVN/repos/test-revision0:$cur-incremental>;0-"$curr"服务返回
echo$curr>/tmp/svn_revision
2.增量备份
old=`cat/tmp/svn_revision'
new=`SVNlookyoursely/data/SVN/project/`
svnadmindump/data/SVN/repos/test-revision$old:$new-incremental>;$old"-"$new"svn.bak
3.svn恢复
恢复顺序是从低版本到高版本逐一恢复;即先还原最后一次完全备份,再还原该文件旁边的增量备份。
cd/data/svn/repos/
svnadmin创建测试2
svnadmin负载测试</data/SVNback/20110719/0-1112SVN.bak
svnadmin负载测试</data/SVNback/20110719/1113-1120SVN.bak
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)