提交后自动更新SVN工作副本

时间:2015-08-13 11:52:19

标签: svn tortoisesvn

我们有125+人的团队,我们正在使用togoise SVN进行版本控制。我们有一个excel表格,每个用户都必须在一天结束时更新他们的日常工作,但事情是在进行更改之前没有正在更新(SVN更新)excel文件,并且由于添加了他的详细信息的人员丢失了。所以为了避免这种情况,我想要一个svn post提交脚本,强制svn update命令给每个人的工作副本,所以每当他们打开他们的工作副本时它都是最新的。 请帮我把它应用到我的存储库 我们正在使用带有Windows客户端的togoise svn,我们已经使用collabnet team-forge集成了togoise svn

2 个答案:

答案 0 :(得分:1)

不,你不想那样。这可能会抹杀正在进行的工作。如果有多个人同时尝试编辑,那将无济于事。

您想要的是一种告诉用户“其他人正在编辑此文件,不要触摸它”的方法。

执行此操作的方法是在任何二进制文件(例如Excel电子表格)上设置svn:needs-lock属性。

使用此属性,该文件在每个人的工作副本上变为只读。要编辑该文件,首先使用svn lock使文件可写,并防止其他人锁定或提交文件。然后,当你的更改完成并提交时,锁就会消失,其他人可以锁定并进行更改。

如果您的文件版本已过期,获取锁定将失败,从而导致更新。

但是在进行更新时请注意不要打开文件,或者可以覆盖传入的更改。

答案 1 :(得分:1)

  1. 如上所述,您选择了错误的方式
  2. 您选择了错误的工具:Excel工作表不是SVN的文本文件,因此 - 它们不能很好地合并(如果没有合并)
  3. 你与奇迹作斗争:如果所有用户都修改了同一个文件,那么只有最快的人才会获胜并且可以提交文件:所有其他用户都会获得"资源过时"在提交尝试时,必须更新自己的WC,外部更改将合并到本地更改的文件中(但请参阅上述警告)
  4. 最后 - 服务器端挂钩在客户端的工作空间中无法做任何事情(svn up是客户端的工作,而不是服务器),除了一些异国情况(ssh)客户&& cd WC&& svn up),这不是你的情况