Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 如何编写post-commit钩子来自动同步两个存储库_Svn_Ssl_Version Control - Fatal编程技术网

Svn 如何编写post-commit钩子来自动同步两个存储库

Svn 如何编写post-commit钩子来自动同步两个存储库,svn,ssl,version-control,Svn,Ssl,Version Control,我正在尝试使用subversion(SVN)同步两个存储库,并在源服务器和镜像服务器上使用visualSVN 我可以手动同步它们,即通过命令行同步,但我希望使用主存储库的post-commit钩子自动触发它们 我正在源存储库(master)的post-commit钩子中编写以下代码,以自动与镜像存储库(slave)同步: 但是,当我将某个文件签入到源存储库(master)时,会显示以下错误: **post-commit hook failed(exit code 1) with output:

我正在尝试使用subversion(SVN)同步两个存储库,并在源服务器和镜像服务器上使用visualSVN

我可以手动同步它们,即通过命令行同步,但我希望使用主存储库的post-commit钩子自动触发它们

我正在源存储库(master)的post-commit钩子中编写以下代码,以自动与镜像存储库(slave)同步:

但是,当我将某个文件签入到源存储库(master)时,会显示以下错误:

**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(主)的源存储库中获取文件,而不是镜像存储库(从),因此我尝试通过镜像服务器的命令行手动提供在主存储库的提交后钩子中编写的相同代码,然后镜像存储库(从)与添加到源存储库的新版本同步(硕士)

在使用post-commit钩子自动同步时,我如何克服这个问题?我哪里出了问题?您能提出一些克服这个错误的方法吗

因此,我尝试通过镜像服务器的命令行手动提供在主存储库的post-commit钩子中编写的相同代码

首先,您在错误的服务器上进行测试。如果在主服务器上执行post commit hook时出现问题,那么您应该在主服务器上测试您的命令

通常,当您看到命令行和提交后钩子上下文中的行为差异时,这与未设置环境变量有关。从:

出于安全原因,Subversion存储库在一个空环境中执行钩子程序,也就是说,根本没有设置环境变量,甚至没有设置$PATH(或Windows下的%PATH%)。因此,当他们的钩子程序手动运行正常时,许多管理员都会感到困惑,但当由Subversion运行时,这些钩子程序无法工作。请确保在钩子程序中显式设置任何必要的环境变量和/或使用程序的绝对路径


我在创建环境变量后尝试过,但仍然显示相同的错误。请说明如何在提交后钩子中为该变量创建环境变量,以使其正常工作?@satish:首先,您应该检查命令行和提交后钩子之间的行为是否不同。如果在命令行上输入命令,会发生什么情况主服务器上的命令行?在我在主服务器的命令行上输入命令后,它工作正常,并将主存储库的挂起修订与从存储库同步,即将挂起修订复制到镜像存储库。
**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**