1。导言
Subversion是一个免费的开源版本控制系统。这个版本库就像一个普通的文件服务器。不同的是,它可以记录文件和目录的每次修改。这样,您可以很容易地恢复到以前的版本,并且可以检查数据更改的细节。目前,Subversion已经成为主流的开源代码版本管理软件之一,简称SVN。
2。了解SVN相关命令
Svn:命令行客户端
Svnadmin:用于创建、调整或修复版本库的工具。
SVNserver:SVN服务程序
Svndumpfilter:过滤svn版本库转储数据流的工具
Svnsync:svn数据同步工具保存相同的另一个副本
Svnlook:用于查看本科课程中的不同修订和事务。
3。两种 *** 作模式
3.1将svnserve作为独立服务,通过svn协议访问。
3.2借助mod_dev_svn模块,由apache服务(Web/DAV)运行,通过http或https协议访问。要了解这种运作模式,可以参考一篇博文:http://lizhenliang.blog.51cto.com/7876557/1340646.
4。安装和部署
对于Ubuntu来说,安装SVN是非常容易的,可以通过apt包直接管理。
4.1直接安装
#sudoapt-get安装版本
4.1创建版本库
#sudomkdir/home/svn
#sudosvnadmin创建/主页/服务/回购
4.2了解版本库
#进入版本库查看生成的相关文件。
#cd/home/svn/repos/
#ls
confdb格式挂钩锁定README.txt
#我们主要关心的是conf和db文件。conf文件夹下是存储主要配置文件、用户和权限的位置,而db文件夹是svn转储后的数据。
#cdconf/
#ls
authzpasswdsvnserve.conf
#authz文件用于设置用户权限,passwd文件用于存储用户和密码,svnserve.conf是主配置文件。首先配置主配置文件。
4.3配置版本库
# sudo vi svnserve.conf #将以下参数去掉注释 [general] anon-access = none #匿名访问权限,默认read,none为不允许访问 auth-access = write #认证用户权限 password-db = passwd #用户信息存放文件,默认在版本库/conf下面,也可以绝对路径指定文件位置 authz-db = authz # sudo vi passwd #格式是用户名=密码,采用明文密码 [users] xiaoming = 123 zhangsan = 123 lisi = 123 # sudo vi authz [groups] #定义组的用户 manager = xiaoming core_dev = zhangsan,lisi [repos:/] #以根目录起始的repos版本库manager组为读写权限 @manager = rw [repos:/media] #core_dev对repos版本库下media目录为读写权限 @core_dev = rw4.4启动服务服务
#sudosvnserve-d-r/home/svn
#检查启动是否成功。可以看监控端口3690。
#sudonetstat-antp|grep服务
TCP0000000:369000000:*列表EN28967/SVN服务器
#如果想关闭服务,可以使用pkillsvnserve。
4.5访问svn
#访问回购版本库地址
svn://192.168.1.100/repos
#访问回购/媒体目录地址
SVN://192.168.1.100/repos/media
#客户端在Windows下访问svn服务器
客户地址:http://tortoisesvn.net/downloads.html
连接方法:安装客户端后->:右击桌面->;点Tortoisesvn->:选择repo-brewer->:输入URL(SVN://192.168.1.100/repos)->:输入管理者组的小名用户和密码登录->:登录后右键上传和删除文件。
博客:http://lizhenliang.blog.51cto.com
5。常见的svn命令
5.1获取最新版本号
SVNlookyourtest/home/SVN/repos
5.2将服务器上的代码目录同步到本地目录
SVNcheckoutSVN://192.168.1.100/repos/media/SVN-用户名张三-密码123
#不要指定同步到本地目录(/svn)。默认为当前目录,或者您可以不指定用户名和密码,这需要手动输入。或者使用缩写SVNco“SVN://...”。
5.3向svn版本库提交新文件
具体步骤:
A)cd/svn#切换到本地代码目录,
b)svn添加文件名
#将文件添加到svn管理,此时尚未提交。另外,提交的文件应该在/svn目录下,否则,会报告为“svn:..”不是工作副本"
c)svnci文件名
#添加注释并提交文件,该文件将使用nanoeditor打开。添加评论后,按ctrl+x,然后按Y,最后按Enter完成提交。
5.4将修改后的文件提交给svn
Svcommit-m“注释描述”文件名
5.5将代码更新至最新版本
#将代码目录的所有文件更新到最新版本
svn更新
#将文件还原到某个版本
Svupdate-r85filename#85是版本号
5.6锁定/解锁代码
#锁定
Svlock-m“注释描述”文件名
#解锁
svn解锁文件名
5.7代码更新冲突
如果提交时逾期,说明代码冲突。首先需要更新svn文件名,然后执行SVN解析文件名,最后提交svncommit-m“注释描述”文件名。
5.8检查日志
svn日志文件名
5.9检查文件信息
svn信息文件名
5.10版本库合并
将库1合并到库2:首先将库2代码签出到本地目录(svncourl2),然后进入这个目录进行迁移(svnmergeurl1)。
6。备份方法
6.1svnadmindump是官方推荐的备份方式,适用于小版本库(100G左右)的备份。它可以增量备份,并且备份恢复很慢。
6.2svnadminhotcopy是一个全卷热拷贝的工具,所以占用磁盘比较多,适合大卷(100G以上)版本库的备份,但是不能达到增量备份的效果,备份恢复比较快。
6.3svnsync是一种实时备份方式,将数据完全复制到另一个版本库中。当这台机器发生故障时,它可以迅速切换到备用机器上。
7,备份和恢复
7.1svnadmin转储备份
#完整备份
svnadmindump/home/SVN/repos>;YYmmdd_fully_backup.svn
#完全压缩备份
svnadmindump/home/SVN/repos|gzip>;YYmmdd_fully_backup.gz
#备份恢复
svnadminload/home/SVN/repos<;YYmmdd_fully_backup.svn
zcatYYmmdd_fully_backup.gz|SVNadmin加载仓库
###增量备份##
#首先进行完整备份
svnadmindump/home/SVN/repos-r0:100>;YYmmdd_incremental_backup.svn
#再次增量备份
svnadmindump/home/SVN/repos-r101:200-incremental>;YYmmdd_incremental_backup.svn
7.2svnadmin热拷贝备份
#备份
svnadminhotcopy/home/SVN/reposYYmmdd_fully_backup-clean-logs
#恢复
svnadminhotcopyYYmmdd_fully_backup/home/SVN/repos
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)