[toc]

0x00 快速入门

什么是SVN?
答:

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

搭建SVN服务常用工具:

  • Subversion

Subversion是什么?
它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。

TortoiseSVN图标介绍

  • 一个新检出的工作复本使用绿色的对勾重载,表示Subversion状态正常
  • 在你开始编辑一个文件之后,状态就变成了已修改,而图标重载已变成了红色感叹号。通过这种方式,你可以很容易地看出那些文件从你上次更新工作复本被修改过且需要提交
  • 如果在提交的过程中出现了冲突,图标就会变成了黄色感叹号
  • 加号告诉你有一个文件或者目录已经被计划加入到版本控制中

WeiyiGeek.图标介绍

注意事项:

  • .svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝(静态试图)被破坏,无法再进行操作。

0x01 svn服务搭建

环境:Windows Server 2008R2
搭建实例

  1. 首先来下载和搭建SVN服务器,下载地址如下: http://subversion.apache.org/packages.html (根据的系统位数和操作系统下载可以自己选择)
    个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用,下载地址:https://www.visualsvn.com/downloads/

WeiyiGeek.VisualSVN server

  1. VisualSVN server服务端的安装与配置(基本下一步)
  • 安装选项 VisualSVN Server and Management Console
  • 标准安装还是专业安装自己根据需求选择
  1. 点击【Finish】即可完成安装。安装完成后,启动VisualSVN Server Manager,如图:
    窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.
    WeiyiGeek.SVN


  1. TortoiseSVN 客服端的安装,需要下载两个一个语言包一个程序安装包,点开上面的TortoiseSVNSVN连接,下载TortoiseSVNserver,下载完成后双击安装如下图:
    WeiyiGeek.安装客户端

  2. 安装完成后,在我右键就可以看到TortoiseSVN;说明snv已经安装成功了!安装语言包直接打开下一步即可


0x02 使用与配置

VisualSVN server

  1. 要建立版本库,需要右键单击左边窗口的Repositores,如下图:在弹出的右键菜单中选择Create New Repository或者新建->Repository:
    WeiyiGeek.新建仓库

  2. 设置建立的仓库权限:All Subcersion users have read / write access,点击【Finish】即可完成基本创建。


VisualSVN Client

  1. checkout项目文件:新建或者进入目录下(比如qianduan1),右键 –> Svn Checkout –> 并且在先在代码浏览器里简历File;
    WeiyiGeek.

  2. 将复制的版本库URL粘贴上,点击【ok】按钮后就可以检索出来,如下:
    WeiyiGeek.

  3. 项目结构
    建项目结构:E:\Repositories\WeiRepository\TestProject,在Project里面建立.trunk、tags、branches三个目录

  • 初始项目就放在trunk主干文件夹里(相当于你真正的项目代码在trunk文件夹里),当trunk里可以发布第一个版本时,就用SVN创建分支,先放一份在branches/version/里;

  • 然后可以把branches/version/里打个包放在tags里,然后继续在主干里开发后面的版本如果之前发布的版本有BUG,就直接在branches/version/里创建修订版本,还是放在branches/version(new)/;

  • tags里面只放置各版本,但不进行修改,branches里放发布版,及发布版对应的修订版,以版本号为子文件夹名,甚至还可以将修订版与trunk里合并;