2014-02-21 129 views
0

我有我的网络中的两台PC: 1)CentOS的 2)Windows 7的SVN预提交钩到Linux

我创建库Linux机器上,并添加一些pre-commit钩子脚本。然后,我将文件签出到两台机器上的工作副本目录中。现在,当我进行一些更改并从linux工作副本提交它们时,pre-commit挂钩就像它们应该那样工作。但是当我从Windows(使用Tortoise或命令行)提交我的更改提交执行,但没有任何工作脚本的结果。

我已经阅读过,那些支持存储库(如果我错了就纠正我)的PC上的脚本是午餐,所以它不应该是什么样的平台,我正在做出改变的问题。

那么,如果有人能解释我为什么这不起作用,那么我将不胜感激?

回答

0

预提交挂钩由承载服务器的机器运行。如果您使用的存储库带有file:// URL或使用svnlooksvnadmin命令,那么它始终是本地计算机,因为实际上没有服务器并且直接访问存储库。

从你所说的话来看,听起来像你将存储库放在网络卷(SMB,NFS等)上,然后使用file:// URL来访问它。如果您使用其他访问方法之一,那么您将不会遇到此问题。

您有3个选项。

的svnserve

svnserve的是一个简单的守护进程提供所述svn://访问方法。它监听自己的网络端口并讨论特定于Subversion的协议。

的svnserve通过ssh

的svnserve的协议隧道通过ssh和一个svnserve进程开始于需求。

的Apache HTTP

的mod_dav_svn的和mod_authz_svn模块提供经由一个Apache的httpd服务器访问颠覆。这通过HTTP使用DAV和DeltaV协议(可选地支持SSL/TLS)。

SVN图书有一个whole section on server setup,涵盖了如何选择服务器来配置它。您可能希望在进行选择之前阅读此内容,然后阅读所选服务器的配置步骤。