简介:

目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广、且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点。

一、安装svn

  1. [root@localhost ~]# yum -y install subversion
  2. [root@localhost ~]# svn --version  #查看版本号
  3. svn,版本 1.6. (r934486)

二、配置svn

1、创建工作目录及版本库

  1. [root@localhost ~]# mkdir /svn
  2. [root@localhost ~]# svnadmin create /svn/myrepos  #创建一个名为myrepos的版本库
  3. [root@localhost ~]# ls /svn/myrepos/
  4. [root@localhost ~]# tree /svn/myrepos/conf/
  5. /svn/myrepos/conf/
  6. ├── authz  #用户授权配置文件
  7. ├── passwd  #用户认证配置文件
  8. └── svnserve.conf  #服务配置文件

2、修改svn版本库配置文件(需要重启svnserver)

  1. [root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/svnserve.conf
  2. [general]
  3. anon-access = none  #匿名用户访问权限
  4. auth-access = write  #认证用户访问权限
  5. password-db = passwd  #认证用户命名文件 
  6. authz-db = authz  #目录授权文件
  7. realm = My First Repository  #提示信息
  8. [sasl]

3、添加认证用户、密码(username = password)

  1. [root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/passwd
  2. [users]
  3. lys = liuyisai
  4. qs = qingshan

4、添加目录授权

  1. [root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/authz
  2. [aliases]
  3. [groups]
  4. [myrepos:/]  #授权目录  
  5. lys = rw  #授权认证用户lys(可读、可写)
  6. qs = r  #授权认证用户qs(可读)
  7. * =  #非授权认证用户(无权限)

5、以守护进程的方式启动svn

  1. [root@localhost ~]# svnserve -d -r /svn  #-d 以守护进程的方式启动一个svnserver,-r 指定版本库

#默认监听TCP 3690 端口,以守护进程模式启动时,可以使用--list-port、--list-host来指定端口、主机

  1. [root@localhost ~]# netstat -lnpt | grep
  2. tcp 0.0.0.0: 0.0.0.0:* LISTEN /svnserve

6、授权测试

  1. [root@localhost ~]# svn checkout --no-auth-cache --username lys --password liuyisai svn://192.168.2.205/myrepos /home/lys/
  2. 取出版本
  3. [root@localhost ~]# svn checkout --no-auth-cache --username qs --password qingshan svn://192.168.2.205/myrepos /home/qs
  4. 取出版本
  1. [root@localhost ~]# touch /home/lys/readme  #创建测试文件
  2. [root@localhost ~]# svn add /home/lys/readme   #添加到工作区
  3. A /home/lys/readme
  4. [root@localhost ~]# svn --no-auth-cache --username lys --password liuyisai commit -m 'add readme' /home/lys/readme
  5. 增加 home/lys/readme
  6. 传输文件数据.
  7. 提交后的版本为
  1. [root@localhost ~]# touch /home/qs/readme1
  2. [root@localhost ~]# svn add /home/qs/readme1
  3. A /home/qs/readme1
  4. [root@localhost ~]# svn --no-auth-cache --username qs --password qingshan commit -m 'add readme1' /home/qs/readme1
  5. svn: 提交失败(细节如下):
  6. svn: 认证失败

三、停止svnserver

  1.  
  1. [root@localhost ~]# kill $(ps aux | grep svnserve | grep -v grep | awk '{print $2}')

四、svn备份、还原

1、逻辑备份(备份灵活、可以全量、增量备份--incremental、节省空间,适合版本库比较小的规模)

  1. [root@localhost ~]# svnadmin dump /svn/myrepos > /data/backup/myrepos_$(date +%Y%m%d).bak

2、物理备份(占用空间大,备份、恢复速度快)

  1. [root@localhost ~]# svnadmin hotcopy /svn/myrepos/ /data/backup/myrepos_hot_$(date +%Y%m%d).bak

3、逻辑还原

  1. [root@localhost ~]# svnadmin load /svn/myrepos/ < /data/backup/myrepos_20161024.bak   #注意:如果版本库被删,还原以后还需重新配置认证用户、授权等!

4、物理还原

  1. [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 集中式版本控制软件的更多相关文章

  1. linux进阶之SVN集中式版本控制系统篇

    代码上线--版本控制系统 SVN             集中式版本控制系统 git                 分布式版本控制系统 SVN是subversion的缩写,即版本控制系统,是一个开放 ...

  2. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  3. 细说SVN集中式版本控制器

    svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具.在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行.  如 ...

  4. Git学习系列之集中式版本控制系统vs分布式版本控制系统

    不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...

  5. git-版本管理工具的介绍+发展史+分布式版本控制系统和集中式版本控制系统的区别

    一.版本管理工具的介绍: 1.备份文件: 2.记录历史: 3.多端共享: 4.团队协作: 二.版本管理工具的发展史: 1.cvs: 集中式   1985: 2.svn:  集中式    2000: 3 ...

  6. 集中式版本控制系统:从svn到tfs

    06年进公司的时候,我们没有使用版本控制系统,所有代码都在部门经理的电脑上放着,谁要改什么代码就过去要一份最新的,改好之后再放回去,感觉好原始.据说之前是用过一段时间微软的vss(visual.sou ...

  7. 关于分布式版本控制系统Git与集中式版本控制系统SVN的区别

    我觉得最最主要的区别就是:分布式Git主要是在本地有各个历史版本,在不联网的时候,也可以更新到最新版本和查看过去的版本,而集中式SVN是所有人都将版本上传到中央服务器,当出现断网情况的时候,用户只有一 ...

  8. 集中式版本管理系统 SVN使用

    SVN的使用 SVN的文件状态 黑色:正常的文件 黄色文件(在Android Stduio中颜色):被忽略的文件 红色:文件没有Add的新文件(没有加入版本控制subversion中) 绿色:新文件A ...

  9. 集中式(SVN)和分布式(Git)版本控制系统的简单比较

       集中式(SVN)  分布式(Git)  是否有中央服务器  有.开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器.因此脱离服务器开发者是几乎无法工作的  没有中央 ...

随机推荐

  1. SNMP开发c#,高薪诚聘,或者外包开发

    现在手里有一个IT资产管理方面的项目,主要会用到SNMP协议,要用这个协议进行开发,对网络上的设备进行控制, 现在高薪诚聘高手,或者项目外包合作,有意向的同学们可以联系我,时间紧迫, QQ:39011 ...

  2. 谈谈javascript放在哪里更合适

    关于javascript放在哪里更合适 脚本位置:  例如以下代码: <html> <head> <title>Script Example</title&g ...

  3. html5设计原理(转)

    转自:   http://www.cn-cuckoo.com/2010/10/21/the-design-of-html5-2151.html 今天我想跟大家谈一谈HTML5的设计.主要分两个方面:一 ...

  4. centos 7 挂载大硬盘

    对硬盘sdb进行分区 parted -a optimal /dev/sdb 使用GPT格式 mklabel gpt 建立一个主分区 mkpart primary - 显示分区信息 print 退出 q ...

  5. PS 使用首记 修改png图片的颜色

    ps打开png图片文件 改颜色 1.魔棒工具,选择图片中的圆圈或方框,双击,选中,出现蚂蚁线. 2.右侧调好颜色 3.alt+delete颜色就改成功了.保存ok. 吸管工具,吸到颜色,存到色板.需要 ...

  6. 编译FFmpeg成一个SO库<转>

    转帖地址:http://www.ihubin.com/blog/android-ffmpeg-demo-3/ ============================================= ...

  7. JavaEE第一天知识点总结

    JavaEE第一天知识点总结 持久化是将程序中的数据在瞬时状态和持久状态间转换的机制 DAO: 英文全称: Date Access Object(数据存取对象) 位于业务逻辑和持久化数据之间 实现对持 ...

  8. Centos安装jdk

    运行Java应用的时候,提示无法找到JAVA_HOME,查询java -version [jifeng@localhost bin]$ java -version java version " ...

  9. C#中string在内存中是如何表示的

    不知道你是否有过和我一样的疑问,不同编码的字符串是如何存储在运行时的内存中的呢,计算机在操作string类型的对象时,如何知道这个string是什么编码呢?和文本文件那样有类似BOM的东东在strin ...

  10. paramiko模块

    安装: # pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto (1) wget http://ftp.dlitz.net/pub/dlitz/cr ...