原文来自:http://liushengjiao.bokee.com/6471097.html
今天突发奇想,想在我自己的机器 上装个svn服务,把一些乱七八糟的文档、资料、代码什么的版本控制起来。
习惯了linux的包管理方式安装软件,回到windows下觉得干个什么都那么费劲。<br>网上到处收集好相关软件的windows版本,经过一番折腾终于安装成功。
为了以后再次安装时省点儿劲,把安装流程记录下来,同时也为了方便其他有这个需求的人。
本文针对的情况是:服务器和客户端都使用windows, 通讯使用svn协议。
一.软件获取
到 http://subversion.tigris.org/ 下载所需的软件,包括:
服务端:Subversion,svnservic
客户端:tortoiseSVN
其实客户端也可以使用Subversion本身,不过tortoiseSVN提供了图形界面以及和windows系统菜单的集成,很好用!
以下1~4在服务器上进行
二. 创建SVN仓库
使用以下命令:
svnadmin create <仓库路径>
例: svnadmin create d:\svnhome //在d:\svnhome上创建svn仓库。
三.修改svn配置文件
打开svn目录中配置文件conf\svnserve.conf,修改配置参数。
例:d:\svnhome\conf\svnserve.conf去掉以下内容之前的注释符#
[general]
anon-access = none
auth-access = write
password-db = passwd(我只修改了这一句)
realm = My First Repository
说明:
anon-access = none
--不允许匿名访问!这个很重要,不然谁都能访问这个代码仓库了。
auth-access = write
-- 允许提交修改
password-db = passwd
--密码文件名字
四.修改用户配置文件
用记事本打开d:\svnhome\conf\passwd,使有效文本(指前面不加注释符的)为:
[users]
user=passwd
可以添加多个这样的用户名密码对。
五.运行SVN服务
在命令行执行
svnserve --daemon --root E:\svn\repository
服务启动,--daemon可简写为-d,--root可简写为-r.
六.添加为系统服务
方法1(推荐):
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
1.安装为服务:
例:我的Subversion安装在"D:\program files\Subversion",版本库在"D:\svn_root",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:\ Program Files\Subversion\bin\svnserve.exe --service -r D:\svn_root"
displayname= "SVNService"
depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\ program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,红色部分是改变部分:
sc create svnservice
binpath= "\"D:\ Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
displayname= "SVNService"
depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
2.启动服务
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务。
3.停止服务
然后使用"net stop svnservice"停止服务。
4.删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
5.配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
sc create svnservice
binpath= "D:\ Program Files\Subversion\bin\svnserve.exe --service -r D:\svn_root"
displayname= "SVNService"
depend= Tcpip
start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
方法2:
建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务。
方法3:
这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:\svn\bin目录下,再从命令行下执行:
svnservice --install --daemon --root "E:\svn\Repository"
sc config svnservice start= auto
net start svnservice
此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。
Websvn的安装
一.安装MSYS(版本:1.0.10)
说明;websvn做版本之间代码 比较时需要调用diff命令(linux下),但是windows下没有该命令,所以要依靠MSYS提供diff命令的运行环境。
官方网站:http://www.mingw.org/
二.安装websvn
官方网站:http://websvn.tigris.org/
版本:2.0
将include目录 下distconfig.php文件变更为config.php,之后将include/config.php中使用$config->parentPath或$config->addRepository设置仓库的路径
例:
$config->addRepository('php_version', 'file:///F:/www/htdoc/apache/svn/php_version');
我的SVNSERVICE配置如下:
svnadmin create d:\svnhome-itrms
sc create svnserviceitrms binpath= "D:\Program Files\Subversion-itrms\bin\svnserve.exe --service -r D:\svnhome-itrms --listen-port 59998" displayname= "SVNServiceITRMS" depend= Tcpip start= auto
贴出SVNSERVE.CONF的内容
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit http://subversion.tigris.org/ for more information.
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
# anon-access = read
# auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
# authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
# realm = My First Repository
[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256
2013年1月6日
SVN客户端解决authorization failed问题 (http://blog.csdn.net/patdz/article/details/7669591)
1. 创建文件夹
E:\STWSource\STWLibrarySVN
2.在文件夹STWLibrarySVN上右键TortoiseSVN->Create epository here
3.创建文件夹
E:\STWSource\STWLibrary
4.创建批处理文件E:\STWSource\svn-server.bat
- @echo off
- cd C:\Program Files\TortoiseSVN\bin
- c:
- set SVNPath=E:\STWSource\STWLibrarySVN\
- TITLE %SVNPath%
- @echo on
- svnserve.exe --daemon --root %SVNPath%
@echo off cd C:\Program Files\TortoiseSVN\bin c: set SVNPath=E:\STWSource\STWLibrarySVN\ TITLE %SVNPath% @echo on svnserve.exe --daemon --root %SVNPath%
5.双击运行svn-server.bat文件,SVN服务器正常启动
6.客户端添加文件,提交,发生错误authorization failed
解决方法
1)E:\STWSource\STWLibrarySVN\conf\authz添加
- * = rw
* = rw
2)修改E:\STWSource\STWLibrarySVN\conf\svnserve.conf
找到行:
- # password-db = passwd
# password-db = passwd
修改为
- password-db = passwd (注意这一行前面不要有空格,不然会报文件异常)
password-db = passwd
3)修改E:\STWSource\STWLibrarySVN\conf\passwd
[Users]下面添加行
- patdz = patdzsecret
patdz = patdzsecret
http://blog.sina.com.cn/s/blog_5542414f0100vw1l.html
svnserve是SVN自带的一个轻型服务器,客户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务 器,实现远程访问SVN版本库。
svnserve可以通过配置文件来设置用户和口令,以及按路径控制版本库访问权限。本文详细分析了svnserve配置文件格式,并说明如何使用配置文 件控制版本库访问权限。
本文介绍SVN的版本为1.4.4。
1) svnserve配置文件概述
svnserve配置文件通常由以下3个文本文件组成:
svn服务配置文件,该文件版本库目录的conf目录下,文件名为svnserve.conf。
用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。
权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。
2) svn服务配置文件
svn服务配置文件为版本库目录中的文件conf/svnserve.conf。该文件仅由一个[general]配置段组成。
[general]配置段中配置行格式如下:
<配置项> = <值>
配置项分为以下5项:
anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:read
auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:write
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf
目录的相对路径。
缺省值:passwd
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
缺省值:authz
realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的
认证域相同,建议使用相同的用户名口令数据文件。
缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
【说明】版本库认证域
在使用svn客户端访问svnserve服务器时,若需要用户登录,则提示信息如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: 0d545a49-4038-0410-99b4-c66dc73f754e
Password for 'root':
在上述第2行"Authentication realm: "之后显示的字符串为认证域名称。如果在配置文件中为设定认证域,就会提示一个UUID,如上述所示。
如果在配置文件中指定了如下配置项:
realm = test
将在svn客户端提示如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: test
Password for 'root':
例1:svn服务配置文件conf/svnserve.conf的内容如下:
[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz
realm = test
上述配置文件设定非鉴权用户无权限访问该版本库;鉴权用户可对版本库进行读写;用户名口令文件为相对版本库conf目录的文件"../../conf /passwd";权限配置文件为相对版本库conf目录的文件"../../conf/authz";版本库的认证域为"test"。
3) 用户名口令文件
用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。该文件仅由一个[users]配 置段组成。
[users]配置段的配置行格式如下:
<用户名> = <口令>
注意:配置行中的口令为未经过任何处理的明文。
例2:用户名口令文件conf/passwd的内容如下:
[users]
admin = admin
thinker = 123456
该文件中配置了两个用户,用户名分别为"admin"和"thinker"。其中"admin"用户的口令为"admin";"thinker"用户的口 令为"123456"。
4) 权限配置文件
权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz。该配置文件由一个[groups]配置段和 若干个版本库路径权限段组成。
[groups]配置段中配置行格式如下:
<用户组> = <用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号","分隔,引用用户组时要使用前缀"@"(如:引用用户组"all"要使用字符 串"@all")。
版本库路径权限段的段名格式如下:
[<版本库名>:<路径>]
如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为"[/tmp]"的版本库路径权限段 设置了所有引用该权限配置文件的版本库中目录"/tmp"的访问权限。
版本库路径权限段中配置行格式有如下三种:
<用户名> = <权限>
<用户组> = <权限>
* = <权限>
其中,"*"表示任何用户;权限的取值范围为''、'r'和'rw',''表示对该版本库路径无任何权限,'r'表示具有只读权限,'rw'表示有读写权 限。
注意:每行配置只能配置单个用户或用户组。
例3:权限配置文件conf/authz的内容如下:
[groups]
g_admin = admin,thinker
[admintools:/]
@g_admin = rw
* =
[test:/home/thinker]
thinker = rw
* = r
在上述配置文件中,定义了一个用户组"g_admin",该用户组包含用户"admin"和"thinker"。然后定义了2个版本库路径权限段。其中, 版本库"admintools"只有用户组"g_admin"可读写,其他用户无任何权限;版本库"test"中路径"/home/thinker"只有 用户"thinker"有读写权限,其他用户只有可读权限。
5) 总结
在本文中,详细介绍了svnserve程序的3个配置文件。SVN管理员可以通过这3个配置文件设置svnserve服务的用户名口令,以及对版本库路径 的访问权限。这些配置文件保存后就立即生效,不需要重启svnserve服务。
需要强调的是本文介绍的配置文件只对svnserve服务有效,即客户端通过前缀为svn://或svn+ssh://的URL访问版本库有效,而对通过 前缀http://、https://或file:///的URL无效。
---------------------------------------------------------------------------------------------------------
以下是从http://www.cnblogs.com/dkblog/archive/2008/12/19/1980770.html找到的资料
windows下sc create命令行添加/创建/修改服务
sc create BITS binpath= "C:\WINDOWS\system32\svchost.exe -k netsvcs" type= share start= auto displayname= "Background Intelligent Transfer Service" depend= RpcSs/EventSystem
修改描述:
sc description BITS "利用空闲的网络带宽在后台传输文件。如果服务被停用,例如 Windows Update 和 MSN Explorer 的功能将无法自动下载程序和其他信息。如果此服务被禁用,任何依赖它的服务如果没有容错技术以直接通过 IE 传输文件,一旦 BITS 被禁用,就可能无法传输文件。"
添加服务:
sc create PolicyAgent binpath= "C:\WINDOWS\system32\lsass.exe" type= share start= auto displayname= "IPSEC Services" depend= RPCSS/Tcpip/IPSec
修改描述:
sc description PolicyAgent "提供 TCP/IP 网络上客户端和服务器之间端对端的安全。如果此服务被停用,网络上客户端和服务器之间的 TCP/IP 安全将不稳定。如果此服务被禁用,任何依赖它的服务将无法启动。"
SC命令的更多用法请在查看help sc
(注册表修改前请做好备份),
SvcHost共享服务的特别之处:或许重启后还需要到注册表位置:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost],查看"C:\WINDOWS\system32\svchost.exe -k netsvcs"以红色字为名的键(这里以netsvcs为例),键值里是否定义有sc create BITS蓝色字的服务(这里以BITS为例),如果没有就在键值把服务名(这里以BITS为例)添加上去,再重启一次。
---------------------------------------------------------------------------------------------------------
看完全文,其实只用这2个命令,大部分都在讲配置而已
1.
svnadmin create d:\svnhome\snym
2.
sc create svnserviceitrms binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r d:\svnhome\snym --listen-port 10001" displayname= "SVNServiceSNYM" depend= Tcpip start= auto
或者
sc create svnserviceitrms binpath= "D:\Program Files (x86)\Subversion\bin\svnserve.exe --service -r d:\svnhome\snym --listen-port 10001" displayname= "SVNServiceSNYM" depend= Tcpip start= auto
相关推荐
配置SVN服务器涉及到安装SVN服务端软件,创建版本库,设置权限管理,以及配置SSH(Secure Shell)以实现安全的远程访问。以下是配置SVN服务器的具体步骤: 1. **创建SVN版本库用户和组**: - 创建一个独立的用户,...
配置SVN服务器协同开发是软件开发团队中常用的一种版本控制系统管理方法,它允许开发者们共享代码,协同工作,同时保持代码的历史记录。本教程将详细解释如何设置SVN服务器以及客户端,以便团队成员能够有效地进行...
本文将深入解析如何在Windows系统中搭建并配置SVN服务器,以及如何设置客户端进行有效操作。 ### 一、SVN服务器的安装与配置 #### 1. 安装Subversion服务器软件 首先,你需要下载并安装Subversion服务器软件。...
本文将详细介绍如何安装和配置SVN服务器,包括安装过程、版本库创建、配置文件调整以及服务器启动等内容。 #### 二、安装SVN服务器 ##### 2.1 检查SVN是否已安装 首先,我们需要检查系统上是否已经安装了SVN。...
在Windows环境下配置SVN服务器,主要是为了实现源代码版本控制,便于团队协作和管理项目代码。Visual Studio 2008和2010作为常用的开发工具,支持集成SVN客户端,使得开发者可以直接在IDE中进行版本控制操作。以下是...
本篇将详细介绍如何安装和配置SVN服务器。 一、SVN服务器的安装 1. **选择平台**:SVN服务器可以在多种操作系统上运行,包括Windows、Linux和macOS。本示例将以常见的Linux服务器为例。 2. **安装Apache ...
以下将详细讲解如何在Linux上安装和配置SVN服务器。 首先,我们需要安装Apache HTTP Server,因为SVN可以通过Apache作为前端服务器提供服务。Apache 2.2是较旧但广泛使用的版本,我们可以通过以下步骤安装: 1. ...
在Windows XP上配置SVN服务器,我们需要以下组件: 1. SVN服务器软件:例如VisualSVN Server,它是一个易于使用的Apache HTTP Server与Subversion集成的Windows服务。 2. SVN客户端:如TortoiseSVN,提供图形化的...
### Ubuntu下配置SVN服务器详解 #### 一、前言 在开源软件开发及团队协作过程中,版本控制系统扮演着至关重要的角色。Subversion (SVN) 是一款非常流行且功能强大的集中式版本控制系统,适用于各种规模的项目。...
本文将深入探讨如何配置SVN服务器,包括创建服务并将其设置为自动启动的过程,这对于确保团队能够高效地使用SVN进行版本控制至关重要。 ### SVN服务器配置的重要性 在分布式团队环境中,SVN服务器充当着中心存储库...
### Centos 7 下安装配置SVN服务器及Apache集成详解 #### 一、安装与配置SVN **1. 安装Subversion** 在CentOS 7系统中部署SVN服务器,首先要确保已经安装了Subversion。具体步骤如下: - **检查是否已安装**:...
总的来说,配置svn服务器是一项关键任务,它为团队协作提供了强大的支持。通过VisualSVN Server,我们可以轻松地管理和维护代码仓库,确保项目的高效运行。同时,了解如何使用svn客户端进行日常操作,也是每个开发者...
这篇博文将详细介绍如何配置SVN服务器,以实现高效和安全的代码版本控制。 首先,我们需要安装SVN服务器。在Windows环境下,我们可以使用`Setup-Subversion-1.6.0.msi`这个安装包来安装Subversion。安装过程中,...
Linux 下 SVN 服务器的搭建与配置 Linux 下 SVN 服务器的搭建与配置是指在 Linux 操作系统下搭建和配置 SVN 服务器的过程。SVN(Subversion)是一种版本控制系统,允许多个用户同时对文件进行编辑和修改。下面将...
2. **配置SVN用户权限** SVN仓库的配置文件位于`/path/to/svn/repository/conf/`目录下,包括`authz`, `passwd`, 和 `svnserve.conf`三个关键文件。 - **svnserve.conf** 是SVN服务器的配置文件,其中定义了访问...
svn 文档管理服务器配置是一个复杂的过程,需要了解 svn 服务器的安装配置、服务器配置、安装过程、测试、创建仓库、启动和关闭、客户端配置、Eclipse 配置 svn 等知识点。只有正确地配置了 svn 文档管理服务器,...
配置SVN服务器的第一步是创建仓库(Repository)。仓库是存储项目文件的地方,每个项目可以有自己的仓库。在VisualSVN Server中,可以通过管理界面新建仓库,设置仓库路径,并选择存储格式(如FSFS或BDB)。仓库创建...