每个客户端的更新

时间:2010-09-26 21:38:44

标签: svn hook post-commit

我在Windows上运行SVN服务器。

我需要在提交后强制更新每个“工作副本”(对于使用svn repos的每个人)。 我尝试在svn服务器上的hook目录中使用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预定任务的解决方案,但这是我最后的解决方案。

你能帮忙吗? 非常感谢。

3 个答案:

答案 0 :(得分:3)

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

你应该让每个人都在每天开始时运行svn update

答案 1 :(得分:3)

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

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

Subversion旨在通过签出无限量的工作副本来实现相同的功能。在每次提交时对每个工作副本进行更新会使每次提交都成为非常昂贵的操作。

如果某些客户端计算机已关闭,请考虑您将采取的措施。

答案 2 :(得分:2)

  

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

我不认为在提交时可以更新每个“工作副本” - 至少在没有做一些非常复杂的事情的情况下也是如此。

  

如果不可能,我希望至少对该人1进行自动更新。

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