我终于让我的小组从SourceSafe切换到Subversion.不幸的是,我的经理仍然想在每个文件上使用独占锁.所以我在每个文件上设置了svn:needs-lock属性,并创建了一个预提交钩子以确保属性保持设置.
我们在Linux服务器上运行Subversion.我们大多数人使用Windows机器,少数人使用Mac.我们正在使用各种SVN客户端(TortoiseSVN,SmartSVN,Subclipse等).
我们现在需要的是一个好的/简单的方法来查看当前锁定在整个存储库中的所有文件(以及锁定它们的人).我在Tortoise和Subclipse中捅了一下,但还没找到我要找的东西.我们的项目有许多深层次的子目录,因此查看每个单独的目录太费时间了.
我想要的是我可以运行的单个报告,其中列出了当前锁定的所有内容以及锁定的内容.获得此类信息的最佳方式是什么?
您正在寻找的是svnadmin lslocks
命令.
我有这个设置工作,因为我们在我们的Subversion存储库(with svn:needs-lock
)中保留了一些Word文档.我有一个cron作业设置,每天检查锁定列表并通过电子邮件向所有团队发送超过7天的所有锁定的报告.通过这种方式,我们可以判断谁长时间懒散并坐在文档的锁定副本上.
这可能不是您正在寻找的答案,但您应该试着说服经理锁实际上不是最好的开发实践.那里有很多关于这个主题的文章,所以我不会在这里重复一遍.
当你从一个没有强制结账锁定的锁定环境转到一个环境时,首先你会认为它会导致混乱,但事实并非如此.当两个人在同一个文件上工作时,SVN擅长合并更改,即使你最终遇到冲突,修复它们并不是那么糟糕.
比等待那个带着关键文件检查过午餐的家伙要好得多,或者更糟糕的是,去度假.
要查看您和其他人的锁定,您可以使用TortoiseSVN→检查修改....本地保存的锁定令牌立即显示.要检查其他人持有的锁(并查看是否有任何锁损坏或被盗),您需要单击Check Repository.
您可以从本地检出中发现锁定,使用svn status --show-updates
该O
锁定将锁定在服务器上的所有文件之前.
例如
$ svn status --show-updates O 279532 LockedFile ? UncommittedFile M 279532 ModifiedFile
有关详细信息,请参阅svnbook