(1)安装:svn在windows系统下安装与hooks钩子自动更新

本文详细介绍了如何在Windows系统中安装SVN,包括创建仓库、设置存储路径,以及通过TortoiseSVN创建仓库。此外,还涉及到了仓库的权限配置,如用户账号、密码管理,以及通过修改conf文件实现访问控制。同时提到了hooks钩子的设置,用于自动更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

svn在windows系统下安装与hooks钩子自动更新

下载并安装:

链接:https://pan.baidu.com/s/1zIHMhsTvevaN9HXod94wkQ?pwd=z6iw 
提取码:z6iw

安装过程中好像会让选择仓库的存储路径,我这里是D:\svndata目录,安装成功后,启动svn:

我这里是做了svn.bat文件(双击打开后即运行了svn服务端),文件内容是:

svnserve -d -r d:\svndata --listen-port 3391

进入D:\svndata仓库存储目录,右键新建个空目录zishahu_test,进入空目录再右键TortoiseSVN->Create repository here新建仓库,如图:

 这里会在该目录生成一堆文件夹和文件,如:

 这时我们将conf目录中的文件全部覆盖掉,使用以下的配置:

authz

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
[/]
lumeng=rw
# 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

passwd

[users]
# harry = harryssecret
# sally = sallyssecret
lumeng=123

svnserve

 

### 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 = read
auth-access = write
anon-access = none
### 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
### 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
### The groups-db option controls the location of the file with the
### group definitions and allows maintaining groups separately from the
### authorization rules.  The groups-db file is of the same format as the
### authz-db file and should contain a single [groups] section with the
### group definitions.  If the option is enabled, the authz-db file cannot
### contain a [groups] section.  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.
### This option is not being used by default.
# 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.
### Enabling this option requires svnserve to have been 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

如果以上操作一切顺利的话,就算成功了。

找个其他盘或新目录,右键-》svn checkout

 这时弹出框填写账号和密码:

填写D:\svndata\zishahu_test\conf\passwd文件中的账号密码即可:

lumeng=123

结束。

 

### TortoiseSVN 钩子脚本的配置使用 TortoiseSVN 提供了一种机制来执行特定事件触发后的自定义操作,这种功能通过 **钩子脚本 (hook scripts)** 实现。这些脚本可以在版本库中的某些动作发生之前或之后自动运行。 #### 1. 钩子脚本的工作原理 TortoiseSVN钩子脚本主要用于服务器端的操作,在客户端无法直接设置钩子脚本[^2]。它们通常用于自动化任务,比如发送通知邮件、验证提交消息或者阻止不符合条件的提交等。 #### 2. 支持的钩子类型 以下是常见的 TortoiseSVN 钩子脚本及其用途: - `pre-commit`:在提交前运行,可以用来检查提交的消息是否符合标准。 - `post-commit`:在成功提交后运行,常用于发送通知给团队成员。 - `start-commit`:在实际提交过程开始之前运行,可用于额外的身份验证逻辑。 - `pre-revprop-change` 和 `post-revprop-change`:分别在修改修订属性前后运行,适用于日志更改场景。 #### 3. 创建和启用钩子脚本 要创建并启用一个钩子脚本,请按照以下流程操作: ##### a. 脚本位置 钩子脚本必须放置于 Subversion 版本库目录下的 `hooks/` 子文件夹中。例如: ``` /path/to/repository/hooks/ ``` ##### b. 文件命名约定 每种类型的钩子都有固定的名称模式。例如: - 对应 pre-commit 动作的脚本应该命名为 `pre-commit.bat` 或者 `pre-commit.sh`(取决于操作系统)。 ##### c. 编写脚本内容 下面是一个简单的例子展示如何编写一个 Windows 平台上的批处理脚本来实现基本的日志长度校验: ```batch @echo off setlocal enabledelayedexpansion :: 获取参数 set REPOS=%1 set TXN=%2 :: 日志最小字符数要求 set MIN_LOG_LEN=10 :: 检查提交日志长度 svnlook log %REPOS% --transaction %TXN% | find /c /v "" > nul && ( set LOG_LEN=%errorlevel% ) if !LOG_LEN! LSS %MIN_LOG_LEN% ( echo Your commit message must be at least %MIN_LOG_LEN% characters long. exit 1 ) exit 0 ``` 此脚本会读取用户的提交信息,并判断其长度是否满足最低限度的要求[^3]。 ##### d. 测试钩子脚本 完成脚本编辑后,可以通过模拟事务的方式测试它是否按预期工作。如果一切正常,则每次有相应的活动发生时都会调用该脚本。 --- ### 注意事项 - 所有的钩子脚本都需具备可执行权限。 - 如果脚本返回非零退出状态码,则认为此次操作失败,从而中断整个进程。 - 客户端不支持本地钩子;所有钩子均作用于服务端环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值