Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交后自动更新SVN工作副本_Svn_Tortoisesvn - Fatal编程技术网

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

提交后自动更新SVN工作副本,svn,tortoisesvn,Svn,Tortoisesvn,我们有一个125多人的团队,我们正在使用Ortoise SVN进行版本控制。我们有一个excel表格,每个用户都必须在一天结束前更新他们的日常工作,但问题是,在进行更改之前,没有人更新(SVN更新)excel文件,因为添加了详细信息的人失踪了。所以为了避免这种情况,我需要一个svn post commit脚本,该脚本将svn update命令强制应用于每个人的工作副本,这样每当他们打开他们的工作副本时,它都将是最新的。 请帮助我将此应用于我的存储库 我们在windows客户端上使用了tortoi

我们有一个125多人的团队,我们正在使用Ortoise SVN进行版本控制。我们有一个excel表格,每个用户都必须在一天结束前更新他们的日常工作,但问题是,在进行更改之前,没有人更新(SVN更新)excel文件,因为添加了详细信息的人失踪了。所以为了避免这种情况,我需要一个svn post commit脚本,该脚本将svn update命令强制应用于每个人的工作副本,这样每当他们打开他们的工作副本时,它都将是最新的。 请帮助我将此应用于我的存储库
我们在windows客户端上使用了tortoise svn,我们已经将tortoise svn与collabnet team forge集成在一起了

不,你不希望这样。这可能会毁掉正在进行的工作。如果多人同时尝试编辑,也不会有帮助

你想要的是告诉用户“有人正在编辑这个文件,不要碰它”

方法是在任何二进制文件(如Excel电子表格)上设置
svn:needs lock
属性

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

如果您的文件版本已过期,则获取锁定将失败,从而强制更新

但是,在进行更新时,请注意不要打开文件,否则可能会重写传入的更改

  • 如前所述,您选择了错误的方式
  • 您选择了错误的工具:Excel工作表不是SVN的文本文件,因此-它们无法很好地合并(如果根本没有合并)
  • 你与奇迹抗争:如果所有用户都修改同一个文件,只有最快的才会获胜并可以提交文件:所有其他用户在提交尝试时都将“资源过时,必须更新自己的WC,并且外部更改将合并到本地更改的文件中(但请参见上面的警告)

  • 最后,服务器端钩子在客户端的工作空间中不能做任何事情(<代码> Svn up < /Cord>是客户端的作业,而不是服务器),除了一些特殊的情况(SSH Client & CD WC& & Svn up),而不是您的情况

    作为一个例外,考虑到您可能正在使用错误的工具来进行作业。这看起来更像是一个协作编辑工具的工作,比如谷歌文档或者微软的答案。