如果文件打开,是否可以通过包装器或更新前挂钩阻止文件的 svn 更新?
我团队中的许多同事在他们打开的 LaTeX 文件上调用 SVN 更新时遇到了 Tortoise SVN 问题,尽管他们试图确保良好的实践使用。以这种方式更新时,冲突更难解决,并且更改会丢失。
如果文件打开,是否可以通过包装器或更新前挂钩阻止文件的 svn 更新?
我团队中的许多同事在他们打开的 LaTeX 文件上调用 SVN 更新时遇到了 Tortoise SVN 问题,尽管他们试图确保良好的实践使用。以这种方式更新时,冲突更难解决,并且更改会丢失。
Bahrep 关于锁定文件的评论是一种简单的方法。但是 LaTeX 文件不是二进制文件,所以如果可能的话,允许 Tortoise 合并更改是有意义的。
TortoiseSVN 可以将钩子脚本作为工作副本的一部分。然后使用特殊的 TortoiseSVN 属性,例如svn::startupdatehook
orsvn::preupdatehook
来执行该脚本。阅读相应文档页面中的“客户端挂钩脚本” 。确保%REPOROOT%
在指定路径时使用变量。
至于脚本本身,这似乎是一个棘手的问题。也许SysInternals 工具包中的某些工具可以提供帮助,例如Handle.exe
. 也许您可以使用 PowerShell 中的某些内容。
还有这个Stack Overflow question,有希望的答案。带有 PowerShell 的那个可能比公认的那个更有用。