在Subversion中查看哪些文件被锁定的最佳方法是什么?

时间:2008-11-12 18:53:52

标签: svn administration

我终于让我的小组从SourceSafe切换到Subversion。不幸的是,我的经理仍然想在每个文件上使用独占锁。所以我在每个文件上设置了svn:needs-lock属性,并创建了一个预提交钩子,以确保该属性保持设置。

我们在Linux服务器上运行Subversion。我们大多数人使用Windows机器,少数人使用Mac。我们正在使用各种SVN客户端(TortoiseSVN,SmartSVN,Subclipse等)。

我们现在需要的是一个好的/简单的方法来查看当前锁定在整个存储库中的所有文件(以及锁定它们的人)。我在Tortoise和Subclipse中捅了一下,但还没找到我要找的东西。我们的项目有许多深层次的子目录,因此查看每个单独的目录太费时间了。

我想要的是我可以运行的单个报告,其中列出了当前锁定的所有内容以及锁定的内容。获得此类信息的最佳方式是什么?

4 个答案:

答案 0 :(得分:34)

您正在寻找的是svnadmin lslocks命令。

我在设置工作时因为我们在Subversion存储库中保留了一些Word文档(使用svn:needs-lock)。我有一个cron作业设置,每天检查锁定列表并通过电子邮件向所有团队发送超过7天的所有锁定的报告。通过这种方式,我们可以判断谁长时间懒散并坐在锁定的文档副本上。

答案 1 :(得分:22)

这可能不是您正在寻找的答案,但您应该尝试说服经理锁定实际上不是最好的开发实践。那里有很多关于这个主题的文章,所以我不会在这里重复一遍。

当你从一个锁定环境转到一个没有强制结账锁定的环境时,首先你会认为它会导致混乱,但事实并非如此。当两个人在同一个文件上工作时,SVN擅长合并更改,即使你最终遇到冲突,修复它们并不是那么糟糕。

比等待那个带有关键文件的午餐的人要好得多,或者更糟糕的是,去度假。

答案 2 :(得分:21)

要查看您和其他人的锁定,您可以使用TortoiseSVN→检查修改....本地保存的锁定令牌会立即显示。要检查其他人持有的锁(并查看是否有任何锁损坏或被盗),您需要单击Check Repository。

答案 3 :(得分:21)

您可以使用svn status --show-updates从本地结帐中发现锁定,这会在所有锁定在服务器上的文件之前放置O

e.g。

$ svn status --show-updates
     O      279532   LockedFile
?                    UncommittedFile
M           279532   ModifiedFile

有关详细信息,请参阅the svnbook