一. SVN 简单介绍
  Subversion(SVN) 是一个开源的版本号控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库非常像一个普通的文件server, 只是它会记住每一次文件的变动。 这样你就能够把档案恢复到旧的版本号, 或是浏览文件的变动历史。
  SVN中的一些概念 :
  (1). repository(源码库)
  源码统一存放的地方
  (2). Checkout (提取)
  当你手上没有源码的时候,你须要从repository checkout一份
  (3). Commit (提交)
  当你已经改动了代码,你就须要Commit到repository
  (4). Update (更新)
  当你已经Checkout了一份源码, Update一下你就能够和Repository上的源码同步,你手上的代码就会有最新的变更
  日常开发过程事实上就是这种(如果你已经Checkout而且已经工作了几天):Update(获得最新的代码) -->作出自己的改动并调试成功 --> Commit(大家就能够看到你的改动了) 。
  假设两个程序猿同一时候改动了同一个文件呢,  SVN能够合并这两个程序猿的改动,实际上SVN管理源码是以行为单位的,就是说两个程序猿仅仅要不是改动了同一行程序,SVN都会自己主动合并两种改动。假设是同一行,SVN会提示文件Confict, 冲突,须要手动确认。
  client软件:
  (1)Windows下经常使用的client软件经常使用TortoiseSVN。它是一个免费的开源的client。 下载地址:http://tortoisesvn.net/downloads.html
  (2)向Myeclipse,也有一些SVN的插件。
  Subversion提供下面主要功能:
  (1)文件夹版本号控制
  CVS 仅仅能跟踪单个文件的历史, 只是 Subversion 实作了一个 “虚拟” 的版本号控管文件系统, 可以依时间跟踪整个文件夹的变动。 文件夹和文件都能进行版本号控制。
  (2)真实的版本号历史
  自从CVS限制了文件的版本号记录,CVS并不支持那些可能发生在文件上,但会影响所在文件夹内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有相同名字可是没有继承老版本号历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你能够添加(add)、删除(delete)、复制(copy)和重命名(rename),不管是文件还是文件夹。全部的新加的文件都从一个新的、干净的版本号開始。
  (3)自己主动提交
  一个提交动作,不是所有更新到了档案库中,就是全然不更新。这同意开发者以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。
  (4)纳入版本号控管的元数据
  每个文件与文件夹都附有一組属性keyword并和属性值相关联。你能够创建, 并儲存不论什么你想要的Key/Value对。 属性是随着时间来作版本号控管的, 就像文件內容一样。
  (5)选择不同的网络层
  Subversion 有抽象的档案库存取概念, 能够让人非常easy地实作新的网络机制。 Subversion 能够作为一个扩展模块嵌入到Apache HTTP server中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了很多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。另一个轻量级的独立Subversionserver, 使用的是自己定义的通信协议, 能够非常easy地通过 ssh 以 tunnel 方式使用。
  (6)一致的数据处理方式
  Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都相同地以压缩形式储存在档案库中, 并且文件差异是以两个方向在网络上传输的。
  (7)有效的分支(branch)与标签(tag)
  在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就仅仅是复制该项目, 使用的方法就相似于硬连接(hard-link)。 所以这些操作仅仅会花费非常小, 并且是固定的时间。
  (8)Hackability
  Subversion没有不论什么的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完好的API。这使得 Subversion 便于维护, 而且可被其他应用程序与程序语言使用。

 二.  SVN server搭建
  2.1 使用yum 安装SVN包
  关于YUM server的配置參考:
  Linux 搭建 YUM server
  http://blog.csdn.net/tianlesoftware/archive/2011/01/03/6113902.aspx
[root@singledb ~]# yum install -y subversion
  [root@singledb ~]#
  验证安装版本号:
[root@singledb ~]# svnserve --version
  The following repository back-end (FS) modules are available:
  * fs_base : Module for working with a Berkeley DB repository.
  * fs_fs : Module for working with a plain file (FSFS) repository.
  2.2 创建SVN 版本号库
  [root@singledb ~]# mkdir /u02/svn
  [root@singledb ~]# svnadmin create /u02/svn/davesvn  --davesvn为版本号库名称
  2.3  SVN 配置
  创建版本号库后,在这个文件夹下会生成3个配置文件:
  [root@singledb conf]# pwd
  /u02/svn/davesvn/conf
  [root@singledb conf]# ls
  authz  passwd  svnserve.conf
  (1)svnserve.conf:  svn服务配置文件下。
  (2)passwd: username口令文件。
  (3)authz: 权限配置文件。
  svnserve.conf 文件, 该文件配置项分为下面5项:
  anon-access: 控制非鉴权用户訪问版本号库的权限。
  auth-access:  控制鉴权用户訪问版本号库的权限。
  password-db: 指定username口令文件名称。
  authz-db:指定权限配置文件名称,通过该文件能够实现以路径为基础的訪问控制。
  realm:指定版本号库的认证域,即在登录时提示的认证域名称。若两个版本号库的认证域同样,建议使用同样的username口令数据文件
  Passwd 文件 :
  我们在svnserve.conf文件中启用这个文件。然后配置例如以下:
  [root@singledb conf]# cat passwd
  ### This file is an example password file for svnserve.
  ### Its format is similar to that of svnserve.conf. As shown in the
  ### example below it contains one section labelled [users].
  ### The name and password for each user follow, one account per line.
  [users]
  # harry = harryssecret
  # sally = sallyssecret
  dave = davepwd
  tianlesoftware = tianlesoftwarepwd
  authz  文件 :
  在网上找到一个非常好的配置样例:
  [groups]
  admin = john, kate
  devteam1 = john, rachel, sally
  devteam2 = kate, peter, mark
  docs = bob, jane, mike
  training = zak
  --这里把不同用户放到不同的组里面,以下在设置文件夹訪问权限的时候,用文件夹来操作就能够了。
  # 为全部库指定默认訪问规则
  # 全部人能够读,管理员能够写,危急分子没有不论什么权限
  [/]  --相应我測试里的:/u02/svn 文件夹
  * = r
  @admin = rw
  dangerman =
  # 同意开发者能够全然訪问他们的项目版本号库
  [proj1:/]
  @devteam1 = rw
  [proj2:/]
  @devteam2 = rw
  [bigproj:/]
  @devteam1 = rw
  @devteam2 = rw
  trevor = rw
  # 文档编写人员对全部的docs文件夹有写权限
  [/trunk/doc]
  @docs = rw
  # 培训人员能够全然訪问培训版本号库
  [TrainingRepos:/]
  @training = rw
  以下我们来配置我们的authz文件:
  [root@singledb conf]# cat authz
  [groups]
  admin = dave
  dev=tianlesoftware
  [davesvn:/]
  @admin = rw
  @dev = rw
  [root@singledb conf]#
  2.4 启动和停止SVN服务
  (1)启动SVN服务:
  [root@singledb conf]# svnserve -d -r /u02/svn
  -d表示后台执行
  -r 指定根文件夹是 /u02/svn
  [root@singledb conf]# ps -ef | grep svn
  root      4592     1  0 18:04 ?        00:00:00 svnserve -d -r /u02/svn
  root      4594  3709  0 18:04 pts/1    00:00:00 grep svn
  (2)停止SVN服务:
  ps -aux |grep svn
  kill -9 进程杀掉三. client连接SVN server
  3.1 安装TortoiseSVN client
  下载地址在第一节已说明。
  3.2 找到自己项目的文件夹,右击,进行SVN 操作
  (1)新建測试文件夹svn,进入后右键,点checkout:
  SVN server的IP地址和版本号库名称。
  新建个文件svn.txt. 把这个文件上传到SVNserver(add):

SVN linux 服务器端配置的更多相关文章

  1. SVN linux端配置

    1.create a folder:     mkdir /sandbox/svn 2.create svn repository:     svnadmin create /sandbox/svn/ ...

  2. Linux 配置 SVN and ideal 配置SVN的客户端 ?

    Linux 配置 SVN? 4.配置svn(服务器端) 项目管理工具(subversion),每个公司都会用到(git/svn) 目的就是为了合作开发 4.1.从linux上安装svn 不需要从官网下 ...

  3. linux svn安装和配置

    linux svn安装和配置,不结合apache http://blog.51yip.com/server/901.html 张映 发表于 2010-07-07 分类目录: 服务器相关 今天有个同事在 ...

  4. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  5. Linux时间同步配置方法

    由于是在做mongoDB的实验中再一次的遇到了mongos路由节点同步时由于ntp时间的问题导致同步非常的慢.故写了个时间同步的语句===> while :; do rdate -s 192.1 ...

  6. 【转】SVN linux命令及 windows相关操作(三)

    TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ...

  7. NFS服务器端配置

    服务器端配置1 创建共享目录# mkdir /home/share# chown nobody.nogroup /home/share2 创建或修改/etc/exports 配置文件这个文件的内容非常 ...

  8. Svn———搭建及配置

    一.Svn介绍 subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件.Subversion支持linux和windows ...

  9. openvpn用户管理、linux客户端配置及企业常用真实案例解析

    1.给企业用户分配VPN账户的流程: 添加拨号需要密码的用户 # source vars NOTE: If you run ./clean-all, I will be doing a rm -rf ...

随机推荐

  1. C# WebApi 过滤器的使用开发接口必备利器

    在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想 ...

  2. swift UITabelVIew - 纯代码自定义tabelViewCell

    // //  CustomTableViewCell.swift //  tab // //  Created by su on 15/12/7. //  Copyright © 2015年 tian ...

  3. Android UI 之 ListView

    一.在代码中创建(不适用XML布局文件) 1.创建一个项目:ListViewLearn 2.修改MainActivity,继承于ListActivity 3.创建一个String数组,用来保存List ...

  4. 对ConditionQueue和锁的理解

    1. 什么时候使用conditionQueue 使用conditionQueue的一个最基本的条件是,操作和状态相关,而且是多线程同时访问的状态. 也就是说在使用conditionQueue的时候, ...

  5. JAVA反射机制o

    Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性.例如,使用它能获得 Java 类中 ...

  6. 在Ubuntu14.04上安装WordPress4搭建技术博客

    1.安装LAMP环境 1.1 安装Apache2 1.2 安装MySQL5 1.3 安装PHP5 1.4 安装phpMyAdmin 2.初始化数据库 3.下载并配置WordPress 4.配置Apac ...

  7. opengl教程推荐

    非常不错的教程! OpenGL教程

  8. Unity3d之Coroutine

    在Unity3d中使用C#时,Coroutine是一个大有用处的好东西,至于怎么用网上多的是讲,我仅在此记录最近一次使用中的小发现. 因为某种需求,要在一个Coroutine实现中使用while循环, ...

  9. solrcloud 搭建资料

    SolrCloud4.9+zookeeper在CentOS上的搭建与安装 http://www.open-open.com/lib/view/open1411307048750.html 官网教程 h ...

  10. 基于Quartz.net的远程任务管理系统 三

    在上一篇中,已经把服务端都做好了.那接下来就是Web的管理端了,因为很多时候服务器是有专门的运维来管理的,我们没有权限去操作,所以有个可以管理Job的工具还是很有必要的. Web管理端,我选择现在很成 ...