`
sbpya
  • 浏览: 615890 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

基于svnserve的SVN服务器(windows下安装与配置)

阅读更多

安装 svnserve

 

  1. http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91得到最新版本的Subversion。

  2. 如果你已经安装了Subversion,svnserve已经运行,你需要在继续之前把它停下来。

  3. 运行Subversion安装程序,如果你在你的服务器上运行,可以跳过第4步。

  4. 打开资源管理器,进入Subversion的安装目录(通常是C:Program FilesSubversion)的bin目录,找到文件svnserve.exeintl3_svn.dlllibapr.dlllibapriconv.dlllibapriutil.dlllibdb*.dlllibeay32.dllssleay32.dll,复制这些文件,或所有bin目录内的文件到你的服务器目录,例如c:svnserve

 

运行 svnserve

现在svnserve已经安装了,你需要在你的server运行它,最简单的方法是在DOS窗口或者windows快捷方式输入:

svnserve.exe --daemon

svnserve将会在端口3690等待请求,--daemon选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。

如果你没有创建一个版本库,根据下面的Apache服务器设置指令“配置”一节

为了验证svnserve正常工作,使用TortoiseSVN版本库浏览器来查看版本库。

假定你的版本库位于c:reposTestRepo,你的服务器叫做localhost,输入:

svn://localhost/repos/TestRepo

当被版本库浏览器提示输入。

你也可以使用 --root 选项设置根位置来限制访问服务器的目录,从而增加安全性和节约输入 svnserve URL 的时间:

svnserve.exe --daemon --root drive:pathtorepositoryroot

以前面的测试为例,svnserve 现在的运行命令为:

svnserve.exe --daemon --root c:repos

然后在 TortoiseSVN 中我们的版本库浏览器 URL 缩短为:

svn://localhost/TestRepo

注意,当 svnserve 和版本库位于不同分区或盘符时也需要使用 --root 选项。

Svnserve 可以提供任意数量的版本库服务。只要将这些版本库放到你刚才定义的根目录下即可,然后使用相对于根的URL访问它们。

警告

不要创建和访问网络共享上的 Berkeley DB 版本库,它不能存在于一个远程的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用 Berkeley DB,结果难以预料-你可能会立刻看到奇怪的错误,也有可能几个月之后才发现数据库已经损坏了。

以服务形式运行 svnserve

使用普通用户直接运行 svnserve 通常不是最好的方法。它意味着你的服务器必须有一个用户登录,还要记着重新启动服务器后重新启动 svnserve。最好的方法是将 svnserve 作为 windows 服务运行。从 Subversion 1.4 开始,svnserve 可以安装为 windows 服务。

为了将 svnserve 安装为 Windows 服务,在一行内执行下面的命令,创建一个当 Windows 启动后,自动启动的服务。

sc create svnserve binpath= "c:svnservesvnserve.exe --service 
    --root c:repos" displayname= "Subversion" depend= tcpip start= auto

如果任一个路径包含空格,你必须使用双引号(逃逸字符)包含路径,例如:

sc create svnserve binpath= ""C:Program FilesSubversionbinsvnserve.exe"
    --service --root c:repos" displayname= "Subversion" depend= tcpip start= auto

在创建服务以后,你还可以增加描述。它在 Windows 服务管理器中显示。

sc description svnserve "Subversion server (svnserve)"

注意 sc 的命令行很特殊。在 key= value 对中,key 与 = 之间不能有空格,但是在 value 之前,必须有空格。

提示

Microsoft 现在建议服务程序使用本地服务或网络服务帐户运行,参考 The Services and Service Accounts Security Planning Guide。以本地服务帐户创建服务,需要在上面的例子里追加下面几行。

obj= "NT AUTHORITYLocalService"

请注意需要给本地服务帐户一些目录的适当权限,包括的 Subversion 和你的版本库,还有所有钩子脚本使用的应用。此帐号的内置组名是"LOCAL SERVICE"。

服务安装完毕后,你需要在服务管理器中启动它(仅此一次;当服务器重启后它会自动启动)。

为了得到更详细的信息,可参考 Windows Service Support for Svnserve

如果你已经使用 SvnService 包装安装了早期的 svnserve,现在想使用内置服务,那么你需要将其从服务中删除(切记先停止服务!)。使用简单的命令

svnservice -remove

即可删除服务。

svnserve 的认证

缺省的 svnserve 配置提供了匿名的只读访问。这意味着你可以使用 svn:// 的 URL 进行检出和更新,或者使用 TortoiseSVN 的版本库浏览器查看版本库,但是不能提交任何修改。

为了打开对版本库的写访问,你可以编辑版本库目录的conf/svnserve.conf文件,这个文件控制了svnserve守护进程的配置,也提供了有用的文档。

为了打开匿名的写访问,只需要简单得设置:

[general]
anon-access = write

然而,你不会知道谁修改了版本库,因为svn:author属性是空的,你也不能控制谁来修改版本库,这是一个很危险的设置。

解决这个问题的一个方法是创建密码数据库:

[general]
anon-access = none
auth-access = write
password-db = userfile

这里的 userfilesvnserve.conf 文件在同一个目录,这个文件也可以存在于文件系统的其他地方(当多个版本库使用相同的访问权限时尤其有用),可以使用绝对路径,或者是 conf 的相对目录,使用 或盘符不能工作。userfile 的结构如下:

[general]
anon-access = none
auth-access = write
password-db = userfile

这个例子拒绝所有的未认证用户(匿名)访问,给 userfile 中的用户读写权限。

提示

如果使用相同的密码数据库维护多个版本库,使用一个认证域将让用户的工作更加简单,因为 TortoiseSVN 可以缓存你的凭证,所以你只需要输入一次,更多的信息可以参考 Subversion 手册的 创建用户文件和域客户端凭证缓存

使用 svn+ssh 认证

另一种svnserve认证的方法是使用SSH来建立请求通道。

通过此方法,svnserve不会作为守护进程启动,而是SSH为你启动svnserve,以SSH授权用户运行,为此,你需要在你的服务器上有SSH守护进程。

It is beyond the scope of this documentation to detail the installation and setup of a secure shell, however you can find further information in the TortoiseSVN FAQ, SSH How-To. You can find other SSH topics within the FAQ by searching for “SSH”.

更多的关于svnserve的信息可以看《使用 Subversion 进行版本管理》

svnserve 基于路径的授权

从Subversion1.3开始,svnserve支持与mod_authz_svn相同的路径为基础的授权模式,你需要编辑版本库路径下的conf/svnserve.conf引用的授权文件。

[general]
authz-db = authz

在这里,authz是你创建用来定义访问权限的文件,你可以为每一个版本库使用单独的文件,或者为所有的版本库使用相同的文件,关于此文件的格式可以查看“路径为基础的授权”一节

支持 SASL

从 Subversion 1.5.0 开始,svnserve 和 TortoiseSVN 支持 svn:// 协议的 Cyrus SASL(简单认证和安全层)。你可以在 Subversion 程序笔记中找到更多信息:在 Subversion 中使用 Cyrus SASL 认证

分享到:
评论

相关推荐

    Windows基于Apache的svn服务器配置

    ### Windows基于Apache的svn服务器配置知识点详解 #### 一、环境搭建 为了在Windows系统上配置基于Apache的Subversion (SVN) 服务器,需要准备以下环境: - **操作系统**:推荐使用 Windows Server 2003 或者 ...

    Window下配置SVN服务器与客户端

    ### 一、SVN服务器的安装与配置 #### 1. 安装Subversion服务器软件 首先,你需要下载并安装Subversion服务器软件。根据提供的部分信息,推荐下载`Setup-Subversion-1.5.1.en-us.msi`进行安装。确保在安装过程中...

    SVN服务器安装与配置

    【SVN服务器安装与配置】 SVN(Subversion)是一种版本控制系统,用于管理代码、文档等文件的版本历史,使得多人协作开发时可以有效管理和跟踪文件的修改历史。本指南将详细阐述如何在服务器端安装并配置SVN。 1. ...

    svn服务器配置.doc

    本文将基于给定的文件信息,深入解析如何在Windows环境下搭建SVN服务器,包括前期准备、服务器端和客户端的安装、版本库的建立、服务器的运行以及如何将其注册为Windows服务。 #### 一、前期准备 在搭建SVN服务器...

    svn安装与服务器搭建完整版

    1. **Windows系统安装**: 可以通过下载`VisualSVN Server`进行安装,这是一个易于使用的SVN服务器管理工具。下载完成后,按照向导进行安装,设置好安装路径和端口号,通常默认即可。 2. **Linux系统安装**: 对于...

    Windows下SVN的配置

    以上是Windows环境下配置SVN的基本步骤和注意事项,理解并正确执行这些步骤将确保SVN服务器的正常运行,并为团队提供安全、高效的版本控制服务。在实际操作中,可能还需要根据具体需求调整配置,例如添加防火墙规则...

    基于apached的svn安装(Windows Based)

    4. **配置SVN权限**: 配置SVN服务器的认证文件`svnserve.conf`和权限文件`svn.authz`。`svnserve.conf`中取消`anon-access`和`auth-access`的注释,并设置相应的访问级别。`svn.authz`用于设置用户和组对仓库的访问...

    SVN_服务器端安装操作手册

    本手册将详细介绍如何在Windows环境中基于Apache服务器安装和配置SVN服务器。 **一、安装Apache** 1. 双击Apache安装程序,按照提示进行安装。在配置过程中,`Network Domain`和`Servername`可以填写IP地址,也...

    svn客户端和svn服务器

    svn服务器通常基于Apache Subversion服务器软件,像"Setup-Subversion-1.6.5.msi"这样的安装包就是用来在本地计算机上设置svn服务器的。 安装svn客户端: 1. 下载并运行"TortoiseSVN-1.6.6.17493-win32-svn-1.6.6....

    SVN的服务器配置说明

    通过本文的学习,读者应能了解SVN的基本概念,并掌握如何在Windows环境下安装和配置SVN服务器,以及如何使用TortoiseSVN客户端工具。此外,还介绍了如何通过配置文件来进行更高级的认证与授权设置。希望本文能帮助...

    svn jsvnadmin 搭建 svn服务器

    6. **配置客户端**:对于开发者,他们需要一个客户端工具来与SVN服务器交互。TortoiseSVN是一款流行的Windows Shell集成的SVN客户端,提供直观的右键菜单操作。安装TortoiseSVN后,用户可以通过“SVN Checkout”从...

    Myeclipse配置SVN详细步骤.docx

    SVN 服务器的配置文件是 svnserve.conf,位于 SVN 服务器的安装目录下。在这个文件中,我们需要修改三处配置:将 "anon-access = read" 改为 "anon-access = none",以限制未经身份验证的用户的访问权限;定义一个...

    svn-1.4.5-setup—svn服务器端

    - `svnserve.conf`:这是SVN服务器的主要配置文件,可以设置服务器端的行为,如匿名访问、身份验证方法等。 - `authz`:这个文件用于定义用户和组对仓库及目录的访问权限,支持基于路径的权限控制。 - `passwd`:...

    Apache2.2+svn1.6.6 在windows环境安装配置版本控制的环境

    Apache2.2+svn1.6.6 在Windows环境下配置版本控制主要涉及到以下几个关键知识点: 1. **Apache HTTP Server 2.2**:Apache HTTP Server是广泛应用的Web服务器,用于托管网页内容。在这个环境中,Apache将作为...

    svn手动配置方案大全[服务器、Eclipse客户端、VS2010客户端]

    配置时需设置SVN仓库URL和身份验证信息,使开发环境与SVN服务器无缝对接。 4. SVN权限配置: SVN的权限管理主要通过svnserve或Apache的authz文件实现。authz文件允许管理员定义用户组和权限规则,比如限制某个用户...

    SVN服务器配置

    总结,SVN服务器配置涉及软件下载与安装、版本库创建、权限管理、服务器运行及客户端操作等多个方面,是实现团队协作和版本控制的重要基础。通过以上步骤,可以高效快速地配置并使用SVN服务器,提升项目开发的协同...

    SVN独立服务器搭建WIN32

    1. **SVN服务器软件**:`Setup-Subversion-1.6.13.msi`,版本1.6.13; 2. **SVN客户端软件**:`TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi`,版本1.6.12; 3. **操作系统**:Microsoft Windows XP Professional...

Global site tag (gtag.js) - Google Analytics