当工作副本位于网络驱动器上时,SVN提交后更新工作副本

时间:2012-03-23 03:02:18

标签: windows svn post-commit svn-hooks

我为一家相当新的网络开发公司工作,我们目前正在测试subversion安装以实现版本控制系统。我们需要版本控制系统执行的功能之一是在提交后使用已编辑的文件更新开发服务器。

我们希望为所有SVN存储库维护一台服务器,即使由于系统要求,我们需要维护多个单独的开发服务器。我知道当开发服务器与SVN位于同一位置时,更新非常简单,但这对我们来说是不可能的。因此,我们需要为每个开发服务器将单独的网络驱动器映射到SVN服务器。

但是,提交时出现此错误。这是我的工作副本测试目录,在post-commit.bat文件中引用:

SET WORKING_COPY=Z:\testweb

然而,这会导致错误......

post-commit hook failed (exit code 1) with output: svn: Error resolving case of 'Z:\testweb'

我确定这是因为服务器与我不是同一个用户,因此没有我需要映射到“Z”的共享 - 我只是不知道如何解决这个问题。有人可以帮忙吗?

更新:我越是关注这些问题,看来问题的真正解决方案是使用CI服务器来完成我想要完成的任务。我目前正在寻找TeamCity以及它可能为我们做些什么。

1 个答案:

答案 0 :(得分:0)

请勿通过 post-commit 挂钩执行此操作。如果你设法让钩子成功,那么你将导致做出提交的人等到更新完成。相反,我建议您使用Jenkins这是一个连续构建引擎。

您可能无法构建任何内容。毕竟,如果您使用的是PHP或JavaScript,则无需编译。但是,您仍然可以使用Jenkins为您执行更新。

我无法深入了解细节,但是你可以用Jenkins做的一件事就是重新定义它的工作目录。您可以通过在定义作业时单击高级按钮来执行此操作,它会询问您希望工作目录的位置。在这种情况下,您可以指定服务器的工作目录。

你可以用Jenkins做的一件事就是让它自动运行测试,或者做一些更顺畅的更新。例如,您可能必须在更改几个文件时重新启动Web服务器,或者您可能需要确保如果您要更改100个文件,它们会立即更改,或者您的服务器不稳定州。你也可以使用Jenkins来做这件事。并且,如果有任何问题,您可以让Jenkins通过电子邮件向负责服务器更新失败的服务器的人发送电子邮件。

Jenkins易于设置和使用。你可以下载它并在10分钟内启动Jenkins。如果你以前从未见过Jenkins并且不知道它是如何工作的,那么在Jenkins工作可能会再花15分钟。