站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题Subversion +eclipse

Subversion +eclipse

摘要: Subversion +eclipse
<table class="fixedTable blogpost" cellspacing="0" width="100%" border="0"><tr><td class="ellipse">Subversion +eclipse</td></tr><tr><td class="bvh8"></td></tr><tr><td id="msgcns!1pbYhEpTq6FNQS3aoNOL5k6Q!378">

首先下载Subversion的Win32自动安装包,安装。安装包会自动添加Path等变量。建立D:\Svn\repository文件夹,作为代码的根目录。

执行命令:svnadmin create D:\Svn\repository建立仓库根目录。

下载并安装SVN Service Wrapper,将svnserve包装为服务。

http://dark.clansoft.dk/~mbn/svnservice/


将svnservice.exe copy 到subversion的bin目录。

执行:svnservice -install -d -r d:\Svn\repository,在控制面板->服务中手动开启服务。

版本控制使用passwd文件。修改%REPO_HOME%/conf/ svnserve.conf,包含如下几句:

[general]

# 指定匿名可读,授权后才可写入

anon-access = read

auth-access = write

# 指定密码文件为当前目录下passwd

password-db = passwd

Passwd文件内容如下,用户名 = 密码:

[users]

user1 = 123456

在这里要注意,所有字符串都要顶格写。

客户端使用eclipse的subclipse就可以。url直接使用svn://localhost/即可。如果使用本机服务也可以使用file///.感觉 subversion 的安装比较方便。

SVN协议使用端口:3690。防火墙需要打开此端口。
Subversion也有图形的客户端,可以在 TortoiseSVN 找到。
Subversion也VS.Net的插件,可以在AnkhSVN 找到。
TortoiseSVN相信不错,因为以前用过它的另一个For CVS的工具,可以和浏览器结合在一起,非常方便和美观。设置项目目录

当svnserve开始运行时,它将会暴露所有的Repository到网络上。不过,当客户端需要获取一个Repository的内容时,需要指定Reopsitory的绝对路径。例如:一个Repository放在文件路径
C:/Project Repository/Project1
那么当客户端访问时,需要指定绝对路径:
svn://host/C:/Project Repository/Project1
所以,为了增加保密性,你可以使用参数-r指定需要暴露的Repository的路径,当用户访问时,只需指定Repository的名称即可。例如上面的Repository,当启动服务时,使用如下的方法:
svn -d -r C:/Project Repository
那么当客户端访问时,则使用
svn://host/Project1
就可以获取数据了。

内置的验证和授权

当客户端连接到一个svnserve进程时,下面的流程就会触发:
1、客户选择一个指定的Repository;
2、服务处理Repository的配置文件 conf/svnserve.conf文件,并且开始执行在其中定义的所有验证和授权策略;
3、依赖与情形和授权策略:
a)客户端也许允许匿名访问而不需要验证,或者
b)客户但也许需要在任何时候被要求验证,或者
c)假如处于"隧道模式"中,客户端将声明自己已经可以被外部验证。

很显然,如上所说,用户文件是一个名为svnserve.conf的,放在conf目录下的文件。
现在我们来看看如何配置这个文件:
这个配置文件放置在Repository的目录中的conf目录下,它有两个节点:
[general]
[users]
其中,[general]的配置信息有:
anon-access = read
auth-access = write
其中表示对于验证有效的以及没通过验证的用户可以做什么事情。分别有read, write和none

[users]的标签的配置内容有:
USERNAME = PASSWORD
password-db = passwd
realm = My First Repository
其中表示,用户名对应的密码是什么,或者指定一个存储用户名和密码的文件的相对或绝对路径以及指定了Repository的验证领域。如果两个 Repository有相同的验证领域,那么它们应该有相同的密码数据库,反之亦然。默认的领域就是指向当前的Repository的路径,与服务器的 Repository的根目录相关。

</td></tr></table>

↑返回目录
前一篇: Eclipse In Action 2.2
后一篇: Eclipse基础--plugin插件安装