3

我有一个在 Windows 上运行的 SVN 服务器。

我需要在提交后强制更新每个“工作副本”(对于每个使用 svn 存储库的人)。我尝试在 svn 服务器的钩子目录中使用 post-commit.bat 脚本。问题是更新发生在服务器上而不是客户端文件中。

这里摘录:

    @ECHO OFF

SET REPOS=%1
SET REV=%2

SET DIR=%REPOS%/hooks

SET WORKING_COPY=c:\path\to\working\copy
svn update %WORKING_COPY%

示例:第 1 个人:提交

提交后第 2 个人:更新

如果不可能,我希望至少为第 1 个人自动更新。第 1 个人:提交,然后在他的工作副本中自动更新。

我已经看到了带有 Windows 计划任务的解决方案,但这是我最后的解决方案。

你能帮我吗 ?非常感谢。

4

3 回答 3

3

我认为每当存储库中的某些内容发生更改时更新多个工作副本是一个非常糟糕的主意。

你想要这个的原因是什么?你将如何制作这个规模?

Subversion 的设计目的是与无限数量的签出工作副本相同。在每次提交时将更新推送到每个工作副本会使每次提交都成为非常昂贵的操作。

还要考虑如果某些客户端计算机被关闭,你会做什么。

于 2010-09-26T21:56:48.327 回答
3

SVN 提交后挂钩用于服务器端操作。您将无法控制已签出存储库副本的其他用户。

你应该让每个人都在svn update每天开始时练习跑步。

于 2010-09-26T21:43:11.117 回答
2

我需要在提交后强制更新每个“工作副本”(对于每个使用 svn 存储库的人)。

我不认为在提交时更新每个“工作副本”是可能的——至少在不做一些非常复杂的事情的情况下是不可能的。

如果不可能,我希望至少为人 1 自动更新。

不确定您到底想做什么,但如果您使用的是 Tortoise,它支持Client -side hook scripts。也许他们可以提供帮助(但他们只会帮助原始工作副本)。但正如我所说,我不确定我是否了解您的确切需求。

于 2010-09-26T21:43:20.453 回答