这可能是最好的维基,考虑到这里的评论: 分享常用/有用的 SVN 预提交钩子
我在 Windows 7 计算机上使用 Visual SVN 2.1.7。我们有来自不同国家/地区的开发人员,我们可以通过运行更改的本地副本,然后通过 ftp 手动上传到正在处理的每个网站的服务器来管理代码更改。
这是一个非常耗时的过程,但比修复实时网站上的错误要省时,所以这是朝着正确方向迈出的一步。
在 Visual SVN 网站上,它提到了提交后和提交前挂钩,但未能显示可以访问的位置,即使它提到有一个 GUI。安装的版本中没有 GUI 的迹象,甚至没有选项,所以我首先无法找到访问它的位置。
假设它可以通过脚本来完成,我已经用谷歌搜索并来到SO寻找一些关于它可能在哪里以及如何完成的指导,但它似乎比我希望的要复杂得多。
有谁有关于如何在 Windows 上执行以下任务(未安装 perl)的经验或指导(包括示例脚本)?
a) 创建预提交命令/文件并将其执行附加到存储库/提交给它 b) 创建一个提交后命令/文件并将其执行附加到存储库/提交给它
就我而言,一项具体任务: c) 如何在 PC 上安装本地 Visual SVN,以便将提交的文件发送到远程 CentOS 共享托管服务器(不是 VPS/Dedi 或云托管,并且 SVN 无法安装在这些计算机上)
这是一款很棒的软件,但似乎要高效使用它的障碍相当高,因为不清楚您需要问什么问题或在哪里查看。希望您可以帮助那些陷入同样困境的人提供一个更好的起点。
谢谢:)
访问钩子:
1.启动VisualSVN服务器管理器
2.打开存储库的属性
3.选择“Hooks”选项卡
4.编辑需要的hook
Hooks 是约定而不是基于配置的。您不必将它们“挂钩”。创建一个
pre-commit
钩子,并且在提交之前运行一个钩子。创建一个 post-commit
钩子,你就有了一个在提交后运行的钩子。
以下是您可以在提交后脚本中根据需要执行的步骤:
您将存储库路径和修订版本作为参数提交给提交后挂钩,因此请使用
repo=%1
和 rev=%2
之类的内容来获取这些值。
提交后复制文件的一种方法是在服务器上有一个工作副本,在提交后钩子中提交后在此工作副本上发出
svn update
,然后复制文件。您可以通过使用 svnlook changed
获取更改的文件来选择性地复制文件。 svnlook 需要修订并使用您之前设置的 rev
变量。
脚本本身可以是任何语言。
VisualSVN 服务器 | 上有一个专用的 Repository Hooks 部分。文档页面。
通常,可以从 VisualSVN Server Manager 控制台PowerShell cmdlet 配置挂钩。有一个钩子脚本列表(
.cmd
脚本):
还有一个简单的编辑器:如果需要,您可以随时在您喜欢的文本编辑器(例如,此屏幕截图中的 Notepad++)中打开挂钩脚本,或使用可执行文件作为挂钩: