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