我试图使用subversion同步两个存储库,并在源服务器和镜像服务器上使用visualSVN。
我能够手动同步它们,即通过命令行,但我希望使用主存储库的post提交钩子自动触发它们。
我正在编写源代码存储库(主)的后提交钩子中的以下代码,以便与镜像存储库(从存储库)自动同步:
svnsync --non-interactive --sync-username syncuser --sync-password syncuserpassword sync mirror-repository-url但是,当我向源存储库(主库)签入某个文件时,它会显示以下错误:
**post-commit hook failed(exit code 1) with output:
svnsync:E230001:Unable to connect to a repository at URL 'mirror-repository-url' svnsync:E230001:Server SSL certificate verification failed; Certificate issued for a different hostname; issuer is not trusted**但是我在SVN ( master )中的源存储库中获取文件,而不是镜像存储库(从),因此我尝试通过镜像服务器的命令行手动给出在主存储库的后提交钩子中编写的相同代码,然后将镜像存储库(从)与添加到源存储库(Master)的新版本同步。
如何克服这个问题,同时使用后提交钩子自动同步?我哪里出错了?你能提出一些想法来克服这个错误吗?
发布于 2014-10-14 14:02:59
因此,我尝试通过镜像服务器的命令行手动给出相同的代码,这些代码是在主存储库的post提交钩子中编写的。
首先,您正在错误的服务器上进行测试。如果在主服务器上执行后提交钩子有问题,那么应该在主服务器上测试您的命令。
通常,当您看到命令行和post提交钩子上下文中的行为不同时,这与没有设置任何环境变量有关。来自关于钩子的SVN书籍部分
出于安全考虑,Subversion存储库使用一个空环境执行钩子程序--也就是说,根本不设置任何环境变量,甚至没有设置$PATH (或%PATH%,在Windows下)。因此,当钩子程序手动运行良好时,许多管理员会感到困惑,但在使用Subversion运行时却无法工作。确保在钩子程序中显式设置任何必要的环境变量和/或使用程序的绝对路径。
https://stackoverflow.com/questions/26362689
复制相似问题