【发布时间】:2012-08-06 16:23:47
【问题描述】:
如何将 svn 挂钩链接到已签出的存储库? 我已经检查了一个示例 SVN 存储库。使用 SVN-admin 选项,我创建了 svn repo(?),其中包含示例 hooks 。 但是如何将我新编写的脚本链接到本地签出的仓库?它需要,因为我在放入管理区域之前已经在本地测试了脚本。
谢谢
【问题讨论】:
标签: svn pre-commit-hook svn-hooks
如何将 svn 挂钩链接到已签出的存储库? 我已经检查了一个示例 SVN 存储库。使用 SVN-admin 选项,我创建了 svn repo(?),其中包含示例 hooks 。 但是如何将我新编写的脚本链接到本地签出的仓库?它需要,因为我在放入管理区域之前已经在本地测试了脚本。
谢谢
【问题讨论】:
标签: svn pre-commit-hook svn-hooks
我认为这里可能存在一些与术语相关的混淆。如果您使用svn checkout 签出存储库,那么您拥有的不是存储库。这是一个工作副本。您不能对工作副本执行存储库操作(如 commit 或 branch),只能对存储库执行。
如果你想测试钩子脚本,你需要先set up a repository on your local machine。您可以make your local repo act as a mirror 的“真实”回购,也可以使用您的数据副本为您的本地回购播种。要执行后者,过程如下所示:
svn export 获取“真实”存储库的快照。使用export 而不是checkout 很重要,因为export 不会创建通常存在的Subversion 元数据文件夹(这很重要)。svn import 将此树加载到您的本地存储库中。这将导致本地存储库的 HEAD 看起来与“真实”存储库的 HEAD 完全相同。你的本地仓库不会有完整的历史记录,因为它不是一个完整的镜像,但它会有相同的文件和文件夹布局。大多数情况下,这足以用于测试脚本。
【讨论】: