目录

SVN 版本控制 概述

Subversion 服务器下载与安装

SVN 服务器创建版本库

CMD 命令行启动 SVN 服务

注册服务启动 SVN 服务

SVN(Subversion) 服务器 授权访问


SVN 版本控制 概述

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

2、Subversion 就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN。

3、Subversion 是 Apache软件基金会组织下的一个项目,使用 C 语言开发的,官网地址:Apache Subversion

4、Subversion 的优良特性:

特性 描述
目录版本控制 CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。
原子提交 提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。
版本控制的元数据 每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性也会像文件内容一样被纳入版本控制。
可选的网络层 Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。
一致的数据处理 Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。
高效的分支和标签 分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。

SVN 工作原理

1、采取客户端/服务器模式——在服务器的版本库中保存项目文件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本。

2、SVN 支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一个历史版本。

SVN 基本操作

1、检出(checkout):将一个服务器端创建好的项目整个下载到本地。这是到项目组后参与开发的第一步,只需执行一次。

2、更新(update):将本地文件更新为服务器端的最新版本。通常为每天上班时或修改公共文件之前执行一次。

3、提交(commit):将本地修改提交到服务器端。通常每天下班前或每实现一个功能、完成一个模块时执行一次。

Subversion 服务器下载与安装

1、Apache 组织自己维护更新的只是 Subversion 的源码,Subversion 在不同平台下的二进制安装包是由不同组织构建实现的,而 Apache 软件基金会自己并不维护,但是它会提供第三方链接,官网地址:Apache Subversion Binary Packages

2、如上所示,提供了各种系统的 SVN 安装方式,各种 Linux 系统,如果是安装在 Linux 系统上,则只需要根据说明,直接安装即可.

3、本文以 Windows 上安装为例,如下所示,都是第三方提供的各种不同的 SVN 软件,有一些是需要收费的.

4、其中的 VisualSVN 服务器是免费的,而且用的人也比较多,它的底层也是使用的 Subversion,操作上偏向于可视化页面操作,而 SVN 偏向于命令行操作。

5、其中的 TortoiseSVN 是操作 SVN 服务器的客户端,可以自行下载。

6、如果对 VisualSVN 有兴趣的可以自行了解,点击之后,可以看到下图,点击右侧相应的版本即可下载,本文不再过多描述,重点还是 SVN。

7、下载 SVN 可以从 开源软件集中式场所 sourceforge 官网下载,地址:Subversion for Windows download | SourceForge.net

安装 SVN

1、安装步骤和普通的软件安装没有太大区别,只将其中的注意点进行截图说明,如下所示,选择 SVN 包含的 apache 服务端访问模块,默认即可。

2、设置安装目录,作为一个合格的程序员,软件安装路径不要有空格,不要含中文,之后点击下一步,然后安装即可。

3、安装完成后,svn 会自动配置 path 系统环境变量,将 svn 的 bin 目录添加到进去,这样以后可以在任意目录下运行 svn 命令行了

4、在 cmd 命令行中使用 " svn --version" 可以验证是否安装成功,如下所示,能看到版本信息,则表示安装成功

C:\Users\Administrator.SC-201707281232>svn --version
svn, version 1.9.5 (r1770682)compiled Nov 26 2016, 14:22:31 on x86-microsoft-windowsCopyright (C) 2016 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/The following repository access (RA) modules are available:* ra_svn : Module for accessing a repository using the svn network protocol.- with Cyrus SASL authentication- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.- using serf 1.3.9 (compiled with 1.3.9)- handles 'http' scheme- handles 'https' schemeThe following authentication credential caches are available:* Wincrypt cache in C:\Users\Administrator.SC-201707281232\AppData\Roaming\SubversionC:\Users\Administrator.SC-201707281232>

SVN 服务器创建版本库

版本库简介

① 为什么要配置版本库?Subversion 是将文件数据信息保存到版本库中进行管理的,为了满足用户的不同需求,Subversion 允许用户对版本库目录进行定制。

② 在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录,例如:D:\DevRepository\Subversion

③ 在版本库根目录下创建与具体项目对应的子目录作为版本库——这样做的目的是使一个 SVN 服务器能够同时管理多个项目,而不是为每一个项目搭建一个 SVN 服务器,例如:

D:\DevRepository\Subversion\CRM
D:\DevRepository\Subversion\ERP
D:\DevRepository\Subversion\OA

④ 创建版本库命令格式:svnadmin create 仓库路径,如 svnadmin create D:\DevRepository\Subversion\StuSys

⑤ 版本库创建之后,自动生成目录结构如下:

版本库操作

1、准备版本库根目录,如下所示用 E:/SvnRepository 做为版本库根目录,里面的子目录以后就是一个一个实际的开发项目.

2、dog 与 tiger 目录作为真正的版本库,现在使用命令来创建 SVN 版本库:svnadmin create 仓库路径

C:\Users\Administrator.SC-201707281232>svnadmin create E:\SvnRepository\dog
C:\Users\Administrator.SC-201707281232>

3、创建好 SVN 版本库之后,就可以启动 SVN 服务了,Windows 系统上启动时,可以分为 cmd 窗口中使用命令行启动,也可以将 SVN 注册为 Windows 服务,让它跟随系统启动。

CMD 命令行启动 SVN 服务

1、命令:svnserve -d -r 版本库根目录,注意所有的命令都可以通过 svnserve --help 进行查看!

-d :表示后台运行
-r 后面接版本库根目录,如 E:\SvnRepository

2、SVN 正常启动后会占用 3690 端口,可以通过端口查看判断 SVN 是否运行成功!

3、如上所示,在其中一个 cmd 窗口中使用命令 svnserve -d -r E:\SvnRepository 启动 SVN,因为是后台启动,所以它的光标会一直在那里闪烁,如果窗口关闭,则 SVN 服务也会一并关闭

4、在另外一个 cmd 窗口中可以使用 netstat -ano|findstr 3690 命令查看 svn 的 3690 端口,同时也可以使用 tasklist |findstr 5488 查看 PID 为 5488 的是哪个进程,由上可见就是  svnserve.exe 程序

注册服务启动 SVN 服务

1、命令行方式优点是直观,缺陷是只要运行服务器端程序的命令行窗口一关闭,服务就会停止,每次开机都需要手动启动。

2、将程序注册为 Windows 服务是一个较好的解决办法,将 SVN 服务端程序注册为 Windows 服务,就可以让 SVN 服务随系统一起启动。

3、注册 Windows 服务需要利用 Windows 系统自带的工具  sc.exe,可以在 C:/Windows/System32 目录下找到

4、可以直接在 cmd 中输入 " sc " 命令,可以查看 sc.exe 所有的命令与参数

C:\Users\Administrator.SC-201707281232>sc
描述:SC 是用来与服务控制管理器和服务进行通信的命令行程序。
用法:sc <server> [command] [service name] <option1> <option2>...<server> 选项的格式为 "\\ServerName"可通过键入以下命令获取有关命令的更多帮助: "sc [command]"命令:query-----------查询服务的状态,或枚举服务类型的状态。queryex---------查询服务的扩展状态,或枚举服务类型的状态。start-----------启动服务。pause-----------向服务发送 PAUSE 控制请求。interrogate-----向服务发送 INTERROGATE 控制请求。continue--------向服务发送 CONTINUE 控制请求。stop------------向服务发送 STOP 请求。config----------更改服务的配置(永久)。description-----更改服务的描述。failure---------更改失败时服务执行的操作。failureflag-----更改服务的失败操作标志。sidtype---------更改服务的服务 SID 类型。privs-----------更改服务的所需特权。managedaccount--更改服务以将服务帐户密码标记为由 LSA 管理。qc--------------查询服务的配置信息。qdescription----查询服务的描述。qfailure--------查询失败时服务执行的操作。qfailureflag----查询服务的失败操作标志。qsidtype--------查询服务的服务 SID 类型。qprivs----------查询服务的所需特权。qtriggerinfo----查询服务的触发器参数。qpreferrednode--查询服务的首选 NUMA 节点。qmanagedaccount-查询服务是否将帐户与 LSA 管理的密码结合使用。qprotection-----查询服务的进程保护级别。quserservice----查询用户服务模板的本地实例。delete ----------(从注册表中)删除服务。create----------创建服务(并将其添加到注册表中)。control---------向服务发送控制。sdshow----------显示服务的安全描述符。sdset-----------设置服务的安全描述符。showsid---------显示与任意名称对应的服务 SID 字符串。triggerinfo-----配置服务的触发器参数。preferrednode---设置服务的首选 NUMA 节点。GetDisplayName--获取服务的 DisplayName。GetKeyName------获取服务的 ServiceKeyName。EnumDepend------枚举服务依赖关系。以下命令不需要服务名称:sc <server> <command> <option>boot------------(ok | bad)指示是否应将上一次启动另存为最近一次已知的正确启动配置Lock------------锁定服务数据库QueryLock-------查询 SCManager 数据库的 LockStatus
示例:sc start MyServiceQUERY 和 QUERYEX 选项:如果查询命令带服务名称,将返回该服务的状态。其他选项不适合这种情况。如果查询命令不带参数或带下列选项之一,将枚举此服务。type=    要枚举的服务的类型(driver, service, userservice, all)(默认 = service)state=   要枚举的服务的状态 (inactive, all)(默认 = active)bufsize= 枚举缓冲区的大小(以字节计)(默认 = 4096)ri=      开始枚举的恢复索引号(默认 = 0)group=   要枚举的服务组(默认 = all groups)语法示例
sc query                - 枚举活动服务和驱动程序的状态
sc query eventlog       - 显示 eventlog 服务的状态
sc queryex eventlog     - 显示 eventlog 服务的扩展状态
sc query type= driver   - 仅枚举活动驱动程序
sc query type= service  - 仅枚举 Win32 服务
sc query state= all     - 枚举所有服务和驱动程序
sc query bufsize= 50    - 枚举缓冲区为 50 字节
sc query ri= 14         - 枚举时恢复索引 = 14
sc queryex group= ""    - 枚举不在组内的活动服务
sc query type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS     - 枚举所有 NDIS 驱动程序C:\Users\Administrator.SC-201707281232>

5、现在要做的是创建服务,所以要使用其中的 " create ----------创建服务(并将其添加到注册表中) " 命令,想要查看哪个字命令的具体用法,可以在 cmd 中直接使用 " sc 字命令" 就能一目了然,如下所示用法以及注意事项都很清楚了。

C:\Users\Administrator.SC-201707281232>sc create
描述:在注册表和服务数据库中创建服务项。
用法:sc <server> create [service name] [binPath= ] <option1> <option2>...选项:
注意: 选项名称包括等号。等号和值之间需要一个空格。type= <own|share|interact|kernel|filesys|rec|userown|usershare>(默认 = own)start= <boot|system|auto|demand|disabled|delayed-auto>(默认 = demand)error= <normal|severe|critical|ignore>(默认 = normal)binPath= <.exe 文件的 BinaryPathName>group= <LoadOrderGroup>tag= <yes|no>depend= <依存关系(以 / (斜杠)分隔)>obj= <AccountName|ObjectName>(默认= LocalSystem)DisplayName= <显示名称>password= <密码>C:\Users\Administrator.SC-201707281232>

6、因为注册 Windows 服务是比较底层的操作,需要修改注册表,所以启动的 cmd 窗口需要以管理员身份运行。

7、现在使用命令为 svn 注册 Windows 服务:

sc create SvnService binpath= "D:\Subversion\bin\svnserve.exe --service -r E:\SvnRepository" start= auto depend= Tcpip

create 创建服务(并将其添加到注册表中)
SvnService 服务名称,自己取
binpath 运行程序的二进制文件路径,就是需要注册服务的程序,等于号右边带空格
--service 这不是 sc 命令的参数,而是 svnserve.exe 程序的参数,表示创建服务
-r :同理 -r 也是为 svnserve.exe 指定版本库根目录
start 启动类型,auto 表示跟随系统自动启动,等于号右边带空格
depend 依赖关系,说明 widnows 服务与 svnserve.exe 之间底层需要使用 Tcpip 协议,等于号右边带空格

如上所示,服务注册成功,也可以通过查看端口和进程判断是否 svn 启动成功

《特别提醒:后面使用命令行进行 检出操作的时候报错说连不上 SVN 服务器,说明注册服务有问题》

C:\Users\Administrator.SC-201707281232>netstat -ano|findstr 3690TCP    0.0.0.0:3690           0.0.0.0:0              LISTENING       13728C:\Users\Administrator.SC-201707281232>tasklist |findstr 13728
svnserve.exe                 13728 Services                   0      8,736 KC:\Users\Administrator.SC-201707281232>

8、同理 sc 还有许多关于服务的命令,同理它们都需要 管理员 权限,如:

sc start 服务名:启动服务
sc stop 服务名:停止服务,删除服务之前,都建议先停止服务
sc delete 服务名:删除服务,电脑重启后,服务面板中就不会再有值了


SVN(Subversion) 服务器 授权访问

1、授权访问表示 SVN 客户端连接 SVN 服务器时需要认证账户与密码,以及用户只能早自己权限范围内的操作

2、设置授权访问分为三步:1)打开授权访问配置,2)创建用户,3)为用户设定权限

3、SVN 授权访问开启后,SVN 客户端 如 TortoiseSVN 等操作时必须认证账号密码,同理 Eclipse 等 Java 编辑器操作时也需要认证 账号密码。

4、SVN 服务器下的创建好的每个版本库中都有一个 conf 目录,如下所示 conf 中存放着配置文件

一:修改 conf/svnserve.conf 文件

1)将第19行 anon-access = write 注释掉:# anon-access = write:表明该版本库不接受匿名访问
2)将第20行# auth-access = write 注释打开:auth-access = write:表明该版本库使用授权访问
3)将第27行注释打开:password-db = passwd:表明使用同目录下的passwd文件保存用户信息
4)将第36行注释打开:authz-db = authz:表明使用同目录下的authz文件保存权限信息
所有的配置信息必须定格写,不能留有空格。

二:创建用户:接着打开 passwd 文件创建用户,如下所示创建了三个用户

所有的配置信息必须定格写,不能留有空格。

三:分配权限:现在开始为创建好的用户分配权限,打开 authz 文件,其中的注释是例子

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joedogGroup = zhangSan,liSi# [/foo/bar]
# harry = rw
# &joe = r
# * =
[/]
@dogGroup = rw
wangWu = r
* = # [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

所有的配置信息必须定格写,不能留有空格。

Windows 下安装 SVN 服务器、创建版本库、授权访问相关推荐

  1. Windows下安装NTP服务器——搭建时间同步服务器

    Windows下安装NTP服务器--搭建时间同步服务器 NTP服务器介绍 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务 ...

  2. Windows下安装NTP服务器

    软件推荐 这里推荐一个批量远程桌面软件:IIS7远程桌面管理工具,它可以批量连接n台服务器vps,并且支持群控功能. IIS7远程桌面管理工具(3389.vps.服务器批量管理.批量远程工具)简介: ...

  3. Windows下安装Boot Camp提示版本不适用

    Windows下安装Boot Camp提示版本不适用 在苹果官网下载boot camp,Windows下解压点击setup安装,提示版本不适用. 那就到解压后的文件BootCamp\Drivers\A ...

  4. windows下架设SVN服务器并设置开机启动

    1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装,在命令行下运行svn命令,如下所以,则svn服务器安 ...

  5. Git学习笔记 -- 安装git、创建版本库、时光穿梭、远程仓库

    一.Git的安装 在window系统上安装:从https://git-for-windows.github.io下载,然后按默认选项安装即可: 安装完成后,在"桌面"上右击,在弹出 ...

  6. windows 下架设svn服务器(转载)

    2019独角兽企业重金招聘Python工程师标准>>> 尝试着去架设一个svn服务器,因为有一天可能你也要带领一个团队去开发,不是吗? * 传统的Subversion 服务器程序: ...

  7. windows 下架设svn服务器

    一.准备工作 1.获取 Subversion 服务器程序 到官方网站(http://www.collab.net/downloads/subversion )下载最新的服务器安装程序.目前最新的是1. ...

  8. svn服务器配置如何修改,windows 下配置svn服务器(+修改)

    传统的Subversion 服务器程序: 一.准备工作 1.获取 Subversion 服务器程序 到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序.目 ...

  9. 在Windows下搭建SVN服务器并且集成到 Eclipse 开发环境中

    2019独角兽企业重金招聘Python工程师标准>>> 一.准备工作 1.获取 Subversion 服务器  http://mirrors.hust.edu.cn/apache/s ...

  10. 在windows下搭建SVN服务器

    有两种方案: * VisualSVN Server,安装更简单.更直观:http://www.visualsvn.com/server/download/ * 传统的Subversion 服务器程序: ...

最新文章

  1. python的用途-请问在python中的% 是什么意思, 起到什么作用?
  2. JS 获取中英字符串字节长度
  3. JAVA笔记(运算符)
  4. Hive 之 常用函数
  5. THINK PHP 学习笔记20171115
  6. 深度学习常用性能评价指标
  7. shell while 结束循环_Shell脚本编程2 for循环/while循环
  8. 「期末」微机原理复习速成(上)
  9. asp.net铁路安全预警与决策支持系统
  10. Jetson 系列——nvidia jetson nano设置声卡
  11. oracle 包头 和 包体,PL/SQL 包头和包体
  12. 苹果手机换android,我从苹果手机换回了安卓手机,是怎样的体验呢?
  13. 最近穷疯了只好吃馒头
  14. 105个软件测试工具大放送
  15. 用1、2、3、4、5、6、7、8、9这9个数字,填入□ 中使等式□□×□□□ = □□□□ 成立,每个数字恰好只用一次。
  16. bzero memset置零的性能比较
  17. Oracle - 索引
  18. 量化交易摸索-角度计算
  19. describe函数描述性统计
  20. 方程组的两种理解方式(线性代数及其应用【2】)

热门文章

  1. 排序算法--归并排序
  2. 用Hough投票做物体检测(续)
  3. springboot 获取yml变量_springboot怎么读取不同yml配置文件
  4. 拓端tecdat|R语言实现拟合神经网络预测和结果可视化
  5. R语言周氏检验(Chow test) 检验回归中结构不稳定性的虚拟变量的替代方案
  6. cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘
  7. python常用的几种字符串替换函数strip、replace、sub
  8. Servlet——文件下载
  9. 面试题 MySQL的慢查询、如何监控、如何排查?
  10. 2016 ECCV论文 《Peak-Piloted Deep Network for Facial Expression Recognition》