SVN:为什么命令 'svnadmin load' 在没有 pre-revprop-change 钩子的情况下工作,但 'svnrdump load' 需要它?
SVN: Why does command 'svnadmin load' work without pre-revprop-change hook but 'svnrdump load' requires it?
当使用 svnadmin load
和 svnrdump load
加载 SVN 转储文件时,只有 svnrdump load
需要使用 pre-revprop-change 挂钩,即使这两种方法都在更改修订属性。
为什么 svnrdump load
需要这个提交钩子而 svnadmin load
不需要?
对于以下示例,这是使用的转储命令:
svnadmin dump /path/to/source/repo > dumpfile.svn_dump
这将在没有预提交挂钩的情况下工作:
svnadmin load /path/to/dest/repo < dumpfile.svn_dump
这将不会工作,除非有预提交挂钩:
svnrdump load file://path/to/dest/repo < dumpfile.svn_dump
我不确定这是否重要,但这些测试都是在 Windows 10 上使用 SVN 1.8.10
完成的
svnrdump
是在 URL 上运行的命令,可能会也可能不会直接访问存储库。
To operate properly svnrdump load
requires that the target
repository have revision property modification enabled via the
pre-revprop-change
hook
而 svnadmin
是一种管理工具,它从不在 URL 上运行,并且始终需要直接访问存储库。
svnadmin is the administrative tool for monitoring and repairing your
Subversion repository. svnadmin works via direct repository access
(and thus can only be used on the machine that holds the repository),
it refers to the repository with a path, not a URL
因此来自 svnadmin
的所有命令将永远不会执行挂钩,因为它直接在存储库上运行。
当使用 svnadmin load
和 svnrdump load
加载 SVN 转储文件时,只有 svnrdump load
需要使用 pre-revprop-change 挂钩,即使这两种方法都在更改修订属性。
为什么 svnrdump load
需要这个提交钩子而 svnadmin load
不需要?
对于以下示例,这是使用的转储命令:
svnadmin dump /path/to/source/repo > dumpfile.svn_dump
这将在没有预提交挂钩的情况下工作:
svnadmin load /path/to/dest/repo < dumpfile.svn_dump
这将不会工作,除非有预提交挂钩:
svnrdump load file://path/to/dest/repo < dumpfile.svn_dump
我不确定这是否重要,但这些测试都是在 Windows 10 上使用 SVN 1.8.10
完成的svnrdump
是在 URL 上运行的命令,可能会也可能不会直接访问存储库。
To operate properly
svnrdump load
requires that the target repository have revision property modification enabled via thepre-revprop-change
hook
而 svnadmin
是一种管理工具,它从不在 URL 上运行,并且始终需要直接访问存储库。
svnadmin is the administrative tool for monitoring and repairing your Subversion repository. svnadmin works via direct repository access (and thus can only be used on the machine that holds the repository), it refers to the repository with a path, not a URL
因此来自 svnadmin
的所有命令将永远不会执行挂钩,因为它直接在存储库上运行。