您的位置:首页 > 其它

Subversion安装指南

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

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

增加了元数据(Meta-data)的版本控制,Subversion有很多设置都是通过元数据实现的。

增加了文件夹的版本控制,没有文件夹的版本控制是CVS中一个很大的不足,这点在Subversion中得到了解决。

支持文件、文件夹的重命名与移动,好处多多,方便多多,不用再描述了吧。

真正的原子提交(Truly Atomic Commits),提交作为一个事务,如果某一受控对象提交失败,那么其他提交的对象也不会有效。这个功能真是一个字:好!同时支持不同仓库(Repository)中受控对象的同时提交。

一些性能上的优化,如分支(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>
D*** svn
SVNParentPath d:/svn
</Location>
然后,配置验证方式:
这里使用旦Apache的验证方式:

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

然后修改配置:
<Location /svn>
D*** 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
连接到仓库的方法(在客户端),有以下五种:

file:///ReposPath/RepoPath,以文件的形式直接访问,最简单的连接方法,不需要服务器,权限由操作系统来控制,如果后台仓库你采用了FSFS(文本)格式还可以在局域网共享中使用。

http://serverip/Repos/Repo,采用了Apache作为服务器的话就可以以这种形式访问,权限由Apache设置。

https://serverip/Repos/Repo,与上一个一样,同时采用了HTTPS加密通信。

svn://serverip/Repos/Repo,采用了svnserve作为服务器的话那么就可以采用这种形式访问,它是一种基于TCP/IP的访问方式。权限由仓库的配置文件设置。

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 支持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: