Subversion安装指南



SubVersion 是一个近期才开始流行起来的版本控制系统。而其作者也就是CVS系统的主要作者本人,一个轻量服务器型的,具备分支管理

Subversion相对CVS来讲有以下几点优势:

  1. 增加了元数据(Meta-data)的版本控制,Subversion有很多设置都是通过元数据实现的。
  2. 增加了文件夹的版本控制,没有文件夹的版本控制是CVS中一个很大的不足,这点在Subversion中得到了解决。
  3. 支持文件、文件夹的重命名与移动,好处多多,方便多多,不用再描述了吧。
  4. 真正的原子提交(Truly Atomic Commits),提交作为一个事务,如果某一受控对象提交失败,那么其他提交的对象也不会有效。这个功能真是一个字:好!同时支持不同仓库(Repository)中受控对象的同时提交。
  5. 一些性能上的优化,如分支(Branching)与标签(Tagging)会采用文件夹的受控方式达到优化。
Subversion与CVS最大的不同之处可能在于它的修订号(Revision)的定义了。Subversion中修订号不是 针对某个特定的受控对象的,而是针对整个仓库的,你在Subversion中不会说“文件A的第4个修订”,而是“仓库修订4中的文件A”,每一次提交都 会导致仓库修订号的增加。没有改动过的文件修订号也会增加。

1.  安装 Subversion

a)         http://subversion.tigris.org/下载该安装文件

系统共分为:
SubVersion,从 http://subversion.tigris.org/ 下载,是实现服务系统的软件。
TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的 SVN 工作程序,结合到文件管理器中,用起来很方便。
SVNService.exe,从 http://dark.clansoft.dk/~mbn/svnservice/ 下载,是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。

2,安装SVN Server
(1) 安装svn-1.0.9-setup.exe,安装目录为D:/Program Files/Subversion.
(2) 安装TortoiseSVN-1.1.2-UNICODE_svn-1.1.2.msi.安装目录为D:/Program Files/TortoiseSVN.
安装后者需要重启计算机.
(3) 建立一个存放源代码的目录SVNROOT,如 e:/ work
     建立新目录E:/work/proj1,作为Repository的主目录.使用创建工作区域,  对该目录进行初始化
      svnadmin create E:/work /proj1
该目录下产生版本控制需要的数据库结构。
(4) 启动svn 服务器实例
     svnserve -d -re:/work
 就可以创建以 e:/work为工作根目录的 svn 服务器实例。
(5) 将SVN Server包装成服务运行:
拷贝SVNService.exe到D:/Program Files/Subversion/bin
开始->运行. 输入"cmd",回车,进入命令行界面.
进入D:/Program Files/Subversion/bin. 运行 SVNService -install -d -re:/work .
将SVN Server注册成后台服务,并将Repository主目录设置到E:/work.
(6) 进入计算机管理->服务和服务程序->服务 ->SVNService服务,将其启动类型从手动改为自动.
(7) 启动服务.
(8) 如果安装有防火墙,则需要打开3690端口.

3,安装SVN+Apache

首先,SVN模块加载上,修改Apache的配置文件httpd.conf:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule dav_module modules/mod_dav.so
LoadModule authz_svn_module modules/mod_authz_svn.so

然后配置仓库:

<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
然后,配置验证方式:
这里使用旦Apache的验证方式:

htpasswd -cm d:/svn/svn-auth-file user1
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
htpasswd -m d:/svn/svn-auth-file user2

然后修改配置:
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType Basic
AuthName “Subversion repository”
AuthUserFile d:/svn/svn-auth-file
Require valid-user
AuthzSVNAccessFile d:/svn/svn-access-file
</Location>
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/]           //这表示,仓库svn1的根目录下的访问权限
harry = rw         // svn1仓库harry用户具有读和写权限
sally = r           // svn1仓库sally用户具有读权限
[svn2:/]           //svn2仓库根目录下的访问权限
harry = r           // harry用户在svn2仓库根目录下只有读权限
sally =           // sally用户在 svn2仓库根目录下无任何权限
#[/]           // 这个表示在所有仓库的根目录下
#* = r           // 这个表示对所有的用户都具有读权限
#[groups]           // 这个表示群组设置
#svn1-developers = harry, sally       // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]        
#@svn1-developers = rw     // 如果在前面加上@符号,则表示这是个群组权限设置

将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/svn1
http://localhost/svn/svn2

4,TEST
(1) 在E:/work下新建目录"proj",点右键,TortoiseSVN->Create Repository Here,选择BDB.
(2) 进入E:/work/proj/conf
在E:/work/proj/conf目录下,新建users.conf文件.users.conf保存用户名和密码.格式如下:
[users]
username = password

用文本编辑器打开svnserve.conf,向其中添加
[general]
anon-access = none
auth-access = write
password-db = users.conf

(3) 点右键,TortoiseSVN->RepoBrowse,输入svn://<serverip>/Default,回车.
输入users.conf中存在的用户名和密码,就可以进入Repository

5.客户端可以有多种:

TortoiseSVN

6.主要功能
svn ADD
svn Delete
svn copy
svn move
svn status
svn diff
svn merge
svn checkin
svn checkout
svn commit
svn  update

7. 连接到仓库的方法URL
连接到仓库的方法(在客户端),有以下五种:

  1. file:///ReposPath/RepoPath,以文件的形式直接访问,最简单的连接方法,不需要服务器,权限由操作系统来控制,如果后台仓库你采用了FSFS(文本)格式还可以在局域网共享中使用。
  2. http://serverip/Repos/Repo,采用了Apache作为服务器的话就可以以这种形式访问,权限由Apache设置。
  3. https://serverip/Repos/Repo,与上一个一样,同时采用了HTTPS加密通信。
  4. svn://serverip/Repos/Repo,采用了svnserve作为服务器的话那么就可以采用这种形式访问,它是一种基于TCP/IP的访问方式。权限由仓库的配置文件设置。
  5. svn+ssh://Repos/Repo,与上一个一样,同时采用了SSH的加密通信。
8.站点
        论坛
     http://www.tigris.org

相关网站

http://subversion.tigris.org SVN官方网站

http://tortoisesvn.tigris.org TortoiseSVN,很好的SVN客户端

http://dark.clansoft.dk/~mbn/svnservice/ SVN Service Wrapper

http://subclipse.tigris.org SVN eclipse插件

    
     http://ankhsvn.tigris.org/   SVN net插件

参考资料

http://svn.ntcu.net/kwiki/ 中文的SVN资料

http://svnbook.red-bean.com/ Book: Version Control with SVN

http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm SVN for Windows中文安装指南

http://svn.ntcu.net/svnbook/ SVN Book中文翻译


9.
第三方工具

Subversion 的模块化设计(在"分层化设计"一节中有描述)以及与其他语言的绑定的能力(在"使用 C 和 C++ 之外的语言"一节中有介 绍)使得它很适合作为其他软件的扩展或是支持模块
  最新的版本,请查阅 Subversion 站点的链接页(http://subversion.tigris.org/project_links.html)。
  
D.1 客户端和插件

  AnkhSVN (http://ankhsvn.tigris.org/)
    微软 Visual Studio .NET 的 Subversion 插件

  JSVN (http://jsvn.alternatecomputing.com/)
    Java Subversion 客户端,包含一个 IDEA 的插件

  psvn.el (http://xsteve.nit.at/prg/vc_svn/)
    Emacs 的 Subversion 接口

  RapidSVN (http://rapidsvn.tigris.org/)
    基于 WxPython libraries 的跨平台的 Subversion 图形化客户端

  Subclipse (http://subclipse.tigris.org/)
    Eclipse 下的 Subversion 插件

  Subway (http://nidaros.homedns.org/subway/)
    Microsoft SCC provider for Subversion

  sourcecross.org (http://www.sourcecross.org/)
    Microsoft SCC provider for Subversion

  Supervision (http://supervision.tigris.org/)
    Subversion 的 Java/Swing 图形化客户端

  Sven (http://www.nikwest.de/Software/#SvenOverview)
    使用 Mac OS X Cocoa 框架开发的 Subversion 图形化客户端

  Svn4Eclipse (http://svn4eclipse.tigris.org/)
    为 Eclipse IDE 设计的 Subversion 插件

  Svn-Up (http://svnup.tigris.org/)
    基于 Java 的 Subversion 以及 IDEA IDE 的插件
  
  TortoiseSVN (http://tortoisesvn.tigris.org/)
    作为微软 Windows 外壳扩展设计的 Subversion 客户端
  
  WorkBench (http://pysvn.tigris.org/)
    在 Subversion 基础上构建的基于 Python 的跨平台软件设计环境

D.2 和语言的绑定

  PySVN (http://pysvn.tigris.org/)
    供 Python 使用的面对对象的 Subversion 客户端 API 项目

  Subversion (http://subversion.tigris.org/)
    供 Python、Perl、和 Java 使用的 Subversion API;对应于核心的 C API

  SVNCPP (http://rapidsvn.tigris.org/)
    供 C++ 的面对对象的 Subversion 客户端 API

D.3 仓库转换工具

  cvs2svn (http://cvs2svn.tigris.org/)
    从 CVS 到 Subversion 的转换

  vss2svn (http://vss2svn.tigris.org/)
    从 Microsoft SourceSafe 到 Subversion 的转换

  Subversion VCP Plugin (http://svn.clkao.org/revml/branches/svn-perl/)
    从 CVS 到 Subversion 转换的 VCP 插件

D.4 更高领域的一些工具

  Kwiki (http://www.kwiki.org/)
    带有 Subversion 备份支持的 Wiki

  Scmbug (http://freshmeat.net/projects/scmbug/)
    集成了漏洞跟踪的软件配置管理系统,支持 Subversion

  Subissue (http://subissue.tigris.org/)
    直接在 Subversion 仓库中跟踪发布

  Subwiki (http://subwiki.tigris.org/)
    使用 Subversion 作为数据仓库 的 Wiki

  svk (http://svk.elixus.org/)
    基于 Subversion 的分散式的 版本控制系统

  submaster (http://www.rocklinux.org/submaster.html)
    基于 Subversion 的分布式的软件开发系统

D.5 仓库浏览工具

  SVN::Web (http://svn.elixus.org/repos/member/clkao/)
    基于 Perl 的 Subversion 仓库 Web 接口

  ViewCVS (http://viewcvs.sourceforge.net/)
    基于 Python 的 CGI 脚本,用来浏览 CVS 和 Subversion 仓库

  WebSVN (http://websvn.tigris.org/)
    基于 PHP 的 Subversion 第三方仓库浏览工具

  Trac (http://projects.edgewall.com/trac)
    基于 Web 的软件项目管理、漏洞跟踪、发布系统,使用版本控制系统接口,并且集成了 Wiki 支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值