转自:http://www.linuxidc.com/Linux/2015-05/117735.htm

1、介绍
  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以很方面恢复到以前的版本,并可以查看数据更改细节。目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN。
2、SVN相关命令了解
  svn:命令行客户端
  svnadmin:用来创建、调整或修复版本库的工具
  svnserve:svn服务程序
  svndumpfilter:过滤svn版本库转储数据流的工具
  svnsync:svn数据同步工具,实现另外存一份相同的
  svnlook:用来查看办本科中不同的修订版和事务
3、两种运行模式
  3.1 利用svnserve作为独立服务运行,通过svn协议访问

3.2 借助mod_dev_svn模块,由apache服务运行(Web/DAV),通过http或https协议访问。想了解此运行模式可以参考着篇:http://www.linuxidc.com/Linux/2013-12/94315.htm

4、安装与部署
对于Ubuntu来说,装个SVN是件很容易的事,Ubuntu 14.04可以直接通过apt软件包管理安装。
  4.1 直接安装
  # sudo apt-get install subversion
  4.1 创建版本库
  # sudo mkdir /home/svn  
  # sudo svnadmin create /home/svn/repos
  4.2 了解版本库
  # 进入版本库查看生成的相关文件
  # cd /home/svn/repos/ 
  # ls
  conf  db  format  hooks  locks  README.txt
  # 我们主要关心的是conf和db文件,conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据。
  # cd conf/
  # ls
  authz  passwd  svnserve.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 = rw

4.4 启动svn服务
  # sudo svnserve -d -r /home/svn
  # 查看是否启动成功,可看的监听3690端口
  # sudo netstat -antp |grep svnserve
  tcp    0      0 0.0.0.0:3690    0.0.0.0:*      LISTEN    28967/svnserve 
  # 如果想关闭服务,可使用pkill svnserve
  4.5 访问svn
  # 访问repos版本库地址
  svn://192.168.1.100/repos
  # 访问repos/media目录地址
  svn://192.168.1.100/repos/media
  # Windows下客户端访问svn服务器 
  客户端下载地址:http://tortoisesvn.net/downloads.html
  连接方式:安装客户端后 --> 右击桌面 --> 点TortoiseSVN --> 选择Repo-breowser --> 输入URL(svn://192.168.1.100/repos)--> 输入manager组的xiaoming用户和密码登录 --> 登录后右击即可上传和删除文件
 
5、常用svn命令
  5.1 获取当前最新修订版本号
  svnlook youngest /home/svn/repos 
  5.2 将服务器上代码目录同步到本地目录
  svn checkout svn://192.168.1.100/repos/media /svn --username zhangsan --password 123  
  #不指定同步到本地目录(/svn)默认是当前目录,也可以不指定用户名和密码,需要手动输入。或使用简写svn co "svn://..."。
  5.3 把新建文件提交到svn版本库
  具体步骤:
  a) cd /svn    #切换到本地代码目录,
  b) svn add filename  
  #将文件加入svn管理,此时并未提交完成,另外提交文件也要在/svn目录,否则报"svn: '..' is not a working copy"
  c) svn ci filename  
  #添加注释说明并提交文件,此时会用nano编辑器打开,添加注释说明后按ctrl+x,再按y,最后回车完成提交
  5.4 把修改后的文件提交到svn
  svn commit -m "注释说明" filename
  5.5 更新代码到最新版本
  # 将代码目录所有文件更新到最新版本
  svn update  
  # 将某个文件还原到某个版本
  svn update -r 85 filename #85是修订版号
  5.6 对代码加锁/解锁
  # 加锁
  svn lock -m "注释说明" filename
  # 解锁
  svn unlock filename
  5.7 代码更新冲突
  如果提交时提供过期的话,说明代码冲突,需先svn update filename,再执行svn resolved filename,最后提交svn commit -m "注释说明" filename
  5.8 查看日志
  svn log filename
  5.9 查看文件信息
  svn info filename
  5.10 版本库合并
  把库1合并到库2中:先把库2代码checkout到本地目录(svn co url2),再进此目录执行迁移(svn merge url1)即可
6、备份方式
  6.1 svnadmin dump是官方推荐的备份方式,适用于量小(100G左右)版本库备份,可增量备份,备份恢复较慢。
  6.2 svnadmin hotcopy是全量热拷贝的工具,因此磁盘占用多,适用于量大(100G以上)版本库备份,但不能达到增量备份效果,备份恢复快。
  6.3 svnsync是一种实时备份方式,将数据完全复制到另一台版本库,当这台机器故障,可迅速切换到备份那台。
7、备份与恢复
  7.1 svnadmin dump备份
  # 完整备份
  svnadmin dump /home/svn/repos > YYmmdd_fully_backup.svn
  # 完整压缩备份
  svnadmin dump /home/svn/repos | gzip > YYmmdd_fully_backup.gz
  # 备份恢复
  svnadmin load /home/svn/repos < YYmmdd_fully_backup.svn
  zcat YYmmdd_fully_backup.gz | svnadmin load repos
  ### 增量备份 ###
  # 先完整备份
  svnadmin dump /home/svn/repos -r 0:100 > YYmmdd_incremental_backup.svn
  # 再增量备份
  svnadmin dump /home/svn/repos -r 101:200 --incremental > YYmmdd_incremental_backup.svn
  7.2 svnadmin hotcopy备份

# 备份
  svnadmin hotcopy /home/svn/repos YYmmdd_fully_backup --clean-logs
  # 恢复
  svnadmin hotcopy YYmmdd_fully_backup /home/svn/repos

Ubuntu 14.04 下搭建SVN服务器 svn://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 6.2 SVN搭建 (YUM安装) http://www.linuxidc.com/Linux/2013-10/91903.htm

CentOS 6.5部署Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN搭建SVN服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows下SVN服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据 http://www.linuxidc.com/Linux/2013-05/84695.htm

Ubuntu Server搭建svn服务以及迁移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-05/117735.htm

Ubuntu 14.04快速搭建SVN服务器及日常使用【转】的更多相关文章

  1. Ubuntu 14.04快速搭建SVN服务器及日常使用

    1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改 ...

  2. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  3. Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

    http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...

  4. 翻译:在Ubuntu 14.04上安装FTP服务器的方法

    说明: 1.原文地址:http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ 2.今天要做一个网络日志的迁移程序,搬 ...

  5. [转] 怎样在Ubuntu 14.04中搭建gitolite git服务器

    相比gitosis,gitolite的功能更为强大,支持对权限的细分控制,学习一下在最新版 的ubuntu 14.04 LTS中搭建gitolite服务器是非常有必要的,嘿嘿,一会属于我们自己的Git ...

  6. Ubuntu 14.04下搭建Node.js的开发环境

    最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...

  7. 在 Ubuntu 14.04 中配置 PXE 服务器

    PXE(预启动执行环境Preboot Execution Environment)服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装. ...

  8. Ubuntu 14.04 LAMP搭建小记

    文章目录 LAMP WinQQ Ubuntu 的使用的建模工具 JDK Chormium flash Eclipse 无法找到Jre LAMP 参考资料: 1. 安装php环境   http://ww ...

  9. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)

    自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...

随机推荐

  1. JavaScript继承学习笔记

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.(jav ...

  2. Java8 Lambda sample (iwantmoon.com出品)

    转载请注明出处:http://iwantmoon.com/Post/83a4497a74674612834965857e7bc044 .Net转到Java来,不知不觉已经有两年了,之前已经用习惯的li ...

  3. Linux 下Valgrind 使用

    Valgrind包括如下一些工具: Memcheck.这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内 ...

  4. 深入理解jQuery中live与bind方法的区别

    本篇文章主要是对jQuery中live与bind方法的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 注意如果是通过jq添加的层和对象一定要用live(),用其他的都不起作用 ...

  5. shell编程之echo命令

    Linux echo命令不能显示文件中的内容.显示字符串或者变量功能说明:显示文字.语 法:echo [-ne][字符串]或 echo [--help][--version]补充说明:echo会将输入 ...

  6. 堆(heap)和栈(stack)的区别

    转: 一.预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中 ...

  7. Android本地服务

    一.服务生命周期总结 (一).单独开启服务,并没有绑定服务Activity中调用startService(),服务的lifecycle:onCreate()→onStartCommand()→onSt ...

  8. 0910 noip模拟

    教师节快乐: T1:勇士闯魔塔,是一道很裸的莫队题目,但在老师的催促下,出题人@syq同学修改了第一题,使之成了一道送分题,全暴力水过: T2:第二题是一道预处理+分组背包,考试中,忘了分组背包怎么敲 ...

  9. 阻止浏览器关闭 区分刷新和关闭 自试IE可用

    window.onbeforeunload = onbeforeunload_handler; function onbeforeunload_handler(){ if(event.clientX& ...

  10. flex Chrome flash调试时 出现Shockwave flash has crashed的解决办法

    在Chrome中输入:chrome://plugins/     PPAPI的Flash Player停用. 使用NPAPI的Flash player. 这里好像没有显示是Debug版本. 但是我在调 ...