SVN预先提交从Windows到Linux的挂钩

时间:2014-02-21 07:08:03

标签: linux windows svn pre-commit-hook

我的网络中有两台PC: 1)CentOs 2)Windows 7

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

我已经读过,脚本是在拥有存储库的PC上发布的(如果我错了,请纠正我),所以不应该对我正在做什么样的平台进行更改。

所以,如果有人能解释为什么这不起作用,那么我会很感激吗?

1 个答案:

答案 0 :(得分:0)

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

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

您有3个选项。

<强>的svnserve

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

svnserve over ssh

svnserve协议通过ssh进行隧道传输,并按需启动svnserve进程。

Apache HTTP

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

SVN Book有whole section on server setup,其中包括选择服务器以配置它。您可能希望在进行选择之前阅读此内容,然后阅读所选服务器的配置步骤。