我正在寻找一种从SVN进行独家结账的方法。
有没有办法在文件签出时自动锁定文件?
如果一个用户进行独占结账,然后另一个用户结账到同一个文件,如何向第二个用户生成某种通知或即时消息,该文件被锁定?
答案 0 :(得分:22)
您可以添加属性或自动支持svn:needs-lock
,使文件成为只读文件,并要求您锁定文件以进行编辑。
如果您使用TortoiseSVN,您将看到锁定文件的不同图标,这对于第二个用户来说应该很容易看到并知道不要编辑该文件。
答案 1 :(得分:6)
您可以使用svn lock阻止其他用户重新检入更改(请注意,您可以使用--force
从其他用户获取锁定)。这将在命令行上生成消息,告知锁定该文件的人。
执行此操作不很常见。人们通过签出副本(非排他性)和写回与其他更改合并的更改来处理SVN(这适用于文本等可合并格式 - 对于二进制文件,您无法执行此操作,如果另一个签名有,则签入将被拒绝发生在此期间)。
我不希望这种情况经常使用,我通常依赖a)svn的合并能力b)与其他团队成员的沟通,以确保我不会踩到其他人的脚趾。
答案 2 :(得分:2)
如果我了解您的后续帖子,我认为您真正想要的是确保人们知道有关锁定。我想象的是用户A和B已经已经检出jpeg的情况。用户A现在将其锁定,并且您希望确保用户B知道,以便他或她不开始编辑jpeg并浪费时间和精力。
如果这是正确的,我建议两件事:首先是沟通(不是非常技术性的,但在使用时非常强大);第二,您可以查看post-lock
的{{1}}存储库挂钩。当有人锁定文件时,您可以使用它来发送电子邮件。
svn
挂钩在一个或多个路径被锁定后运行。它通常用于发送锁定事件的电子邮件通知。