一、svn介绍

1.1 项目管理中的版本控制问题

通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:

  • 备份多个版本,占用磁盘空间大
  • 解决代码冲突困难
  • 容易引发BUG
  • 难于追溯问题代码的修改人和修改时间
  • 难于恢复至以前正确版本
  • 无法进行权限控制
  • 项目版本发布困难

1.2 什么是版本控制

  版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

1.3 svn是什么?

  SVN(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足。

1.4 svn的使用方法

  svn是基于客户/服务器模式:

  

  • 复制-修改-合并方案(Subversion默认的模式)

  在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。

  • 锁定-修改-解锁方案

  在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。

二、svn服务端安装配置

2.1 两种服务端安装包

【官方安装包】

  官方网站:http://subversion.apache.org/

  下载:http://subversion.apache.org/download.cgi

  

  官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用

【图形化服务端】

  志愿者开发的图形化操作界面的svn服务端,它适用于普通软件开发人员使用。

  下载地址:https://www.visualsvn.com/downloads/

  

2.2 安装图形化服务端

  

  

  

  查看程序菜单:

  

  查看服务,VisualSVN成功启动:

  

2.3 创建仓库

  svn服务端创建完成需要创建仓库,仓库中存放要版本控制的文件。

  启动VisualSVN server manager,新建仓库:

  

  选择文件存储方式:

  

  

  创建一个空的仓库:

  

  设置用户访问仓库权限:

  

  仓库创建成功:

  仓库地址为https://ip地址或计算机名/svn/仓库名称

  

  

2.4 创建工程目录

  仓库中存放开发项目代码、文档等,需要创建一个工程目录。

  

  

  创建成功:

  

  • trunk:项目开发代码的主体,是从项目开始直到当前都处于活动的状态,从这里可以获得项目最新的源代码以及几乎所有的变更历史信息。
  • branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。
  • tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态。

  

  工程目录创建完成,查看它的svn地址:

  

  拷贝svn地址:

  

三、TortoiseSVN客户端

3.1 svn客户端类型

  svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:

  1、使用Subversion提供的客户端命令,使用方式:在命令行下输入命令操作。

  2、使用Torotise图形化界面操作(推荐)

  3、使用Eclipse等开发工具插件操作(推荐)

3.2 TortoiseSVN的下载安装

  TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。

  TortoiseSVN是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。

  

  下载:http://tortoisesvn.net/downloads.html   提供 32位和64位不同版本,安装tortoiseSVN 需要修改客户端电脑右键菜单,安装后需要重启电脑。

  

3.3 浏览仓库

  使用Tortoise浏览svn服务端的仓库的内容:

  

四、权限管理(了解)

4.1 认证授权机制

  在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。

  判断账号和密码输入是否正确的过程即认证过程。

  判断用户是否拥有目录的读/写权限时即授权过程。

4.2 创建用户

  

  查看已创建的用户:

  

  修改用户:

  

4.3 创建组

  

  查看创建的组:

  

  修改组:

  

4.4 分配仅限

  给仓库下的每个目录分配权限对访问进行控制。

4.4.1 删除默认权限

  删除系统安装后默认权限:

  

4.4.2 示例一:开发人员拥有读写权限

  进入权限分配界面:

  

  添加组或用户:

  

  分配权限:

  继承父目录权限、不可访问、读权限、读/写权限

  

  访问时输入账号:

   

  登陆测试是否有读/写权限:

  

4.4.3 示例二:测试人员拥有读权限

  

  登陆测试是否有读/写权限:

  

4.4.4 清除认证缓存

  有几种情况需要清除认证缓存:

  1、本地使用多个账号登陆,每次输入的账号和密码都不一样

  2、当账号密码修改后(建议清理)

  

svn学习笔记(一)的更多相关文章

  1. svn学习笔记(1)入门学习----安装及创建运行仓库

    学习及使用svn有一段时间了,但是以前学习的时候不怎么用,现在用只是简单的更新上传,又把基本理论忘了.为了以后自己看自己的笔记回忆,特此记录 svn学习博客:http://www.cnblogs.co ...

  2. [No000081]SVN学习笔记1-服务端搭建

    目录 一:SVN服务器搭建和使用. 1.首先来下载和搭建SVN服务器,地址http://subversion.apache.org/packages.html 2.安装完成后,启动VisualSVN ...

  3. [No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

    行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会 ...

  4. [No000094]SVN学习笔记4-版本库概念与部分日常操作

    基本概念 版本库 Subversion 使用集中的数据库,它包含了所有的版本控制文件及其完整历史.这个数据库就是版本库.版本库通常位于运行 Subversion 服务器的文件服务器上,向 Subver ...

  5. [No000092]SVN学习笔记3-Import/Checkout(迁入/迁出),GetLock(加锁)

    一.TortoiseSVN Client 获取服务器端的文件到新的本地文件夹 1.在本地新文件夹上右键菜单: 2.打开Repo-browser(可能需要输入你的用户名&密码) 3.输入服务器端 ...

  6. [No000091]SVN学习笔记2-TortoiseSVN Client初级操作update(获取)、commit(提交)

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  7. svn学习笔记(2)操作----还原,重命名,冲突处理,权限配置等

    1.查看某个文件的所有版本信息 2.版本还原,还原到之前的某一个版本 通过show log查看 查看某个文件的所有版本后,可以在这些版本之间自由切换 3.文件改名 文件改名字给我们一个教训: 如:in ...

  8. SVN 学习笔记

    命令参考 Api手册 清除用户密码 rm ~/.subversion/auth 撤销本地svn操作 svn revert 解决冲突 分支处理 拷贝分支 svn copy http://svn.exam ...

  9. SVN学习笔记

    一.什么是SVN? Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库(repository) 中. ...

  10. svn学习笔记(二)

    一.TortoiseSVN日常使用 1.1 浏览仓库 Repo-browser : 浏览仓库中资源信息 1.2 导入导出 Export :导出项目 ,和checkout区别 (checkout检出后文 ...

随机推荐

  1. java Web jsp页面的静态包含和动态包含

    现在有头 体 尾 三个jsp页面 top.jsp <%@ page language="java" contentType="text/html; charset= ...

  2. Linux 常用命令(转)

    转自:https://www.cnblogs.com/gaojun/p/3359355.html 1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文 ...

  3. 【COCI2012】覆盖字符串

    [题目描述] 给出一个长度为N的小写字母串,现在Mirko有M个若干长度为Li字符串.现在Mirko要用这M个字符串去覆盖给出的那个字符串的.覆盖时,必须保证:1.Mirko的字符串不能拆开,旋转:2 ...

  4. c语言函数是怎么传递参数的

    其实就是把变量或常量复制了一份给函数中的变量,简单说来就是复制的过程. 有一个很经典的问题:用函数交换两个变量的值. int a=1; int b=2; swap(a,b) 有一个函数是这样实现的 v ...

  5. 使用 append 方法追加元素

    来自于<sencha touch 权威指南> 学习使用 Ext.DomHelper 组件在页面中追加元素.app.js代码如下: Ext.require(['Ext.form.Panel' ...

  6. R语言的并行运算(CPU多核)

    通常R语言运行都是在CPU单个核上的单线程程序.有时我们会有需求对一个向量里的元素应用相同的函数,最终再将结果合并,并行计算可以大幅节约时间. 为了支持R的并行运算, parallel包已经被纳入了R ...

  7. jqgrid控件列分组

    <%-- builed by manage.aspx.cmt [ver:2014.48.11] at 2014/10/11 16:48:33 --%> <%@ Page Langua ...

  8. Oracle数据库之单表查询

    接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据.单表查询里面的内容也是比较 ...

  9. Alpha冲刺(三)

    Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1(组长)柯奇豪 过去两天完成了哪些任务 ssm框架的使用并实现简单的数据处理 ...

  10. 装饰(Decorator)模式

    一. 装饰(Decorator)模式 装饰(Decorator)模式又名包装(Wrapper)模式[GOF95].装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 二. 装饰模式 ...