配置SVN

来源:互联网 发布:好听的歌 知乎 编辑:程序博客网 时间:2024/06/02 07:00

1. TortoiseSVN只是一个Subversion的客户端工具,Subversion是开源的版本控制系统,包括客户端和服务端。

    如果单机使用,可以仅安装TortoiseSVN;如果联合开发,则需要在服务器上安装Subversion,客户端可以使用TortoiseSVN

2. 在服务器安装Setup-Subversion-1.8.5,安装路径:D:\Subversion

3. 新建D:\SvnRoot,做为Svn的版本库目录。

4. 对版本库目录规划,新建不同的目录,用于保存不同的项目;如D:\SvnRoot\ZcWebDemo,D:\SvnRoot\ZcWeChatDemo;

5. 安装TortoiseSVN;

6. 然后,在某一个项目目录(如D:\SvnRoot\ZcWebDemo)右键,选择:TortoiseSVN -> 在此创建版本库,点击“确定”(注意:不要创建目录结构-理由:由于本人对SVN不了解,经过测试,如果创建了目录结构,那么同步到客户端的项目文件中就会多出三个目录:branches、tags、trunk)这些目录可以手工创建。

7. 配置文件:

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.apache.org/ for more information.[general]### The anon-access and auth-access options control access to the### repository for unauthenticated (a.k.a. anonymous) users and### authenticated users, respectively.### Valid values are "write", "read", and "none".### Setting the value to "none" prohibits both reading and writing;### "read" allows read-only access, and "write" allows complete ### read/write access to the repository.### The sample settings below are the defaults and specify that anonymous### users have read-only access to the repository, while authenticated### users have read and write access to the repository.anon-access = none #使非授权用户无法访问 如果该值为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 #指明密码文件路径</span>### 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### directory containing this file.  The specified path may be a### repository relative URL (^/) or an absolute file:// URL to a text### file in a Subversion repository.  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 #访问控制文件</span>### The groups-db option controls the location of the groups file.### Unless you specify a path starting with a /, the file's location is### relative to the directory containing this file.  The specified path### may be a repository relative URL (^/) or an absolute file:// URL to a### text file in a Subversion repository.# groups-db = groups### 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### The force-username-case option causes svnserve to case-normalize### usernames before comparing them against the authorization rules in the### authz-db file configured above.  Valid values are "upper" (to upper-### case the usernames), "lower" (to lowercase the usernames), and### "none" (to compare usernames as-is without case conversion, which### is the default behavior).# force-username-case = none### The hooks-env options specifies a path to the hook script environment ### configuration file. This option overrides the per-repository default### and can be used to configure the hook script environment for multiple ### repositories in a single file, if an absolute path is specified.### Unless you specify an absolute path, the file's location is relative### to the directory containing this file.# hooks-env = hooks-env[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


passwd文件内容:

格式是:帐号 = 密码 一个用户为一行

### This file is an example password file for svnserve.### Its format is similar to that of svnserve.conf. As shown in the### example below it contains one section labelled [users].### The name and password for each user follow, one account per line.[users]# harry = harryssecret# sally = sallyssecretnewtelcom = newtelcom123


authz文件配置,该文件可以设置分组以及相应的访问权限:

### This file is an example authorization file for svnserve.### Its format is identical to that of mod_authz_svn authorization### files.### As shown below each section defines authorizations for the path and### (optional) repository specified by the section name.### The authorizations follow. An authorization line can refer to:###  - a single user,###  - a group of users defined in a special [groups] section,###  - an alias defined in a special [aliases] section,###  - all authenticated users, using the '$authenticated' token,###  - only anonymous users, using the '$anonymous' token,###  - anyone, using the '*' wildcard.###### A match can be inverted by prefixing the rule with '~'. Rules can### grant read ('r') access, read-write ('rw') access, or no access### ('').[aliases]# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average[groups]# harry_and_sally = harry,sally# harry_sally_and_joe = harry,sally,&joe# [/foo/bar]# harry = rw# &joe = r# * =# [repository:/baz/fuz]# @harry_and_sally = rw# * = r[/]newtelcom=rw

8. 注册服务

在Cmd窗口输入命令如下:
sc create svnservice binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/SvnRoot" displayname= "SvnService" depend=Tcpip start=auto

binpath指定svnserve的路径和命令。注意其参数是--service,而不是--daemon. 不能用-d和-i,-t等参数。
start=auto表示服务自动启动。注意,等于号的左边无空格,而右边必须有一个空格
displayname="SvnService"表示注册服务的名字。

执行完后,系统返回
[SC] CreateService SUCCESS 表示服务创建成功。

启动服务命令:
net start SvnService

停止服务命令:
net stop SvnService

删除服务命令:
sc delete SvnService


9. 测试Svn

在本地CheckOut:file:///D:/SvnRoot/ZcWebDemo

在本地CheckOut:svn://192.168.0.3/ZcWebDemo

在局域网其他机器CheckOut:svn://192.168.0.3/ZcWebDemo

0 0