SVN 集中式版本控制软件
简介:
目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广、且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点。
一、安装svn
[root@localhost ~]# yum -y install subversion
[root@localhost ~]# svn --version #查看版本号
svn,版本 1.6. (r934486)
二、配置svn
1、创建工作目录及版本库
[root@localhost ~]# mkdir /svn
[root@localhost ~]# svnadmin create /svn/myrepos #创建一个名为myrepos的版本库
[root@localhost ~]# ls /svn/myrepos/
[root@localhost ~]# tree /svn/myrepos/conf/
/svn/myrepos/conf/
├── authz #用户授权配置文件
├── passwd #用户认证配置文件
└── svnserve.conf #服务配置文件
2、修改svn版本库配置文件(需要重启svnserver)
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/svnserve.conf
[general]
anon-access = none #匿名用户访问权限
auth-access = write #认证用户访问权限
password-db = passwd #认证用户命名文件
authz-db = authz #目录授权文件
realm = My First Repository #提示信息
[sasl]
3、添加认证用户、密码(username = password)
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/passwd
[users]
lys = liuyisai
qs = qingshan
4、添加目录授权
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/authz
[aliases]
[groups]
[myrepos:/] #授权目录
lys = rw #授权认证用户lys(可读、可写)
qs = r #授权认证用户qs(可读)
* = #非授权认证用户(无权限)
5、以守护进程的方式启动svn
[root@localhost ~]# svnserve -d -r /svn #-d 以守护进程的方式启动一个svnserver,-r 指定版本库
#默认监听TCP 3690 端口,以守护进程模式启动时,可以使用--list-port、--list-host来指定端口、主机
[root@localhost ~]# netstat -lnpt | grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /svnserve
6、授权测试
[root@localhost ~]# svn checkout --no-auth-cache --username lys --password liuyisai svn://192.168.2.205/myrepos /home/lys/
取出版本 。
[root@localhost ~]# svn checkout --no-auth-cache --username qs --password qingshan svn://192.168.2.205/myrepos /home/qs
取出版本 。
[root@localhost ~]# touch /home/lys/readme #创建测试文件
[root@localhost ~]# svn add /home/lys/readme #添加到工作区
A /home/lys/readme
[root@localhost ~]# svn --no-auth-cache --username lys --password liuyisai commit -m 'add readme' /home/lys/readme
增加 home/lys/readme
传输文件数据.
提交后的版本为 。
[root@localhost ~]# touch /home/qs/readme1
[root@localhost ~]# svn add /home/qs/readme1
A /home/qs/readme1
[root@localhost ~]# svn --no-auth-cache --username qs --password qingshan commit -m 'add readme1' /home/qs/readme1
svn: 提交失败(细节如下):
svn: 认证失败
三、停止svnserver
[root@localhost ~]# kill $(ps aux | grep svnserve | grep -v grep | awk '{print $2}')
四、svn备份、还原
1、逻辑备份(备份灵活、可以全量、增量备份--incremental、节省空间,适合版本库比较小的规模)
[root@localhost ~]# svnadmin dump /svn/myrepos > /data/backup/myrepos_$(date +%Y%m%d).bak
2、物理备份(占用空间大,备份、恢复速度快)
[root@localhost ~]# svnadmin hotcopy /svn/myrepos/ /data/backup/myrepos_hot_$(date +%Y%m%d).bak
3、逻辑还原
[root@localhost ~]# svnadmin load /svn/myrepos/ < /data/backup/myrepos_20161024.bak #注意:如果版本库被删,还原以后还需重新配置认证用户、授权等!
4、物理还原
[root@localhost ~]# svnadmin hotcopy /data/backup/myrepos_hot_20161024.bak/ /svn/myrepos/
五、win客户端连接
1、下载、安装小乌龟 ( TortoiseSVN )
2、建立工作目录,右键 Checkout --> URL ( svn://192.168.2.205/myrepos ) --> 输入用户名、密码 ( lys / liuyisai )
3、测试授权,创建一个文件,添加,提交 看看是否很授权吻合 !
SVN 集中式版本控制软件的更多相关文章
- linux进阶之SVN集中式版本控制系统篇
代码上线--版本控制系统 SVN 集中式版本控制系统 git 分布式版本控制系统 SVN是subversion的缩写,即版本控制系统,是一个开放 ...
- SVN集中式版本控制器的安装、使用与常见问题汇总
SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...
- 细说SVN集中式版本控制器
svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具.在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行. 如 ...
- Git学习系列之集中式版本控制系统vs分布式版本控制系统
不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...
- git-版本管理工具的介绍+发展史+分布式版本控制系统和集中式版本控制系统的区别
一.版本管理工具的介绍: 1.备份文件: 2.记录历史: 3.多端共享: 4.团队协作: 二.版本管理工具的发展史: 1.cvs: 集中式 1985: 2.svn: 集中式 2000: 3 ...
- 集中式版本控制系统:从svn到tfs
06年进公司的时候,我们没有使用版本控制系统,所有代码都在部门经理的电脑上放着,谁要改什么代码就过去要一份最新的,改好之后再放回去,感觉好原始.据说之前是用过一段时间微软的vss(visual.sou ...
- 关于分布式版本控制系统Git与集中式版本控制系统SVN的区别
我觉得最最主要的区别就是:分布式Git主要是在本地有各个历史版本,在不联网的时候,也可以更新到最新版本和查看过去的版本,而集中式SVN是所有人都将版本上传到中央服务器,当出现断网情况的时候,用户只有一 ...
- 集中式版本管理系统 SVN使用
SVN的使用 SVN的文件状态 黑色:正常的文件 黄色文件(在Android Stduio中颜色):被忽略的文件 红色:文件没有Add的新文件(没有加入版本控制subversion中) 绿色:新文件A ...
- 集中式(SVN)和分布式(Git)版本控制系统的简单比较
集中式(SVN) 分布式(Git) 是否有中央服务器 有.开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器.因此脱离服务器开发者是几乎无法工作的 没有中央 ...
随机推荐
- TabLayout 简单使用。
先上效果图 在使用TabLayout 之前需要导入design包. 我使用的是android studio 只要在build.gradle中加入 compile 'com.android.suppor ...
- 使用struts通配符报错
报错截图如下: 主要原因是:对大小写敏感. struts.xml StudentAction.java jsp页面:(重点就是这里,锚里面需要特别注意,大小写应该与struts.xml里面的保持一致, ...
- 【MySQL】pt-query-digest数据处理并关联业务
参考:www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.htm 通过pt-query-digest将慢日志导入数据库后在表global_q ...
- Python交互式编程导论----事件驱动编程
传统的编程是如下线性模式的: 开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束 每一个代码块里是完成各种各样事情 ...
- Opencv出现错误“0xc000007b”的解决办法
装了一下午的opencv.之前用VS2010装过opencv,当时使用的是cmake编译源码的办法,这个方法好处就是不用每新建一个工程就重新链接opencv库文件.今天装了个VS2013,再装open ...
- tomcat7/8 启用调试模式,可进行远程调试
tomcat7,和 tomcat6 的jpda 不一样,tomcat7已经把jpda配置的属性在catalina.sh/catalina.bat里面已经写好了,我们不需要向tomcat6那样去设置参数 ...
- 开发《基于Arcgis Online的家政管理服务信息系统》随笔2
解决了三天的一个问题终于搞定了,和大家分享一下... 1.来点开胃菜, 在Sql server 2008中想要增加修改字段,有时不能修改,作如下操作即可搞定此问题, 启动MSSQL SERVER 2 ...
- linux下dos环境和unix环境转换
DOS转UNIX::setfileformat=unix UNIX转DOS::setfileformat=dos and :set ff=unix
- SpringMVC无法获取请求中的参数的问题的调查与解决(2)
由于Request的getInputSteam()一旦获取一次后,就再也无法获取了 在实际项目中导致下面的问题: 1,多个拦截器,Filter都需要从InputStream中拿数据的情况无法处理: 2 ...
- HBase预分区
seq 0 7 | awk '{printf("\\x%02x\\x%02x\n", $1/256, $1%256);}' | sort -R |head -3 create 'm ...