【问题标题】:What is the best way to see what files are locked in Subversion?查看 Subversion 中锁定了哪些文件的最佳方法是什么?
【发布时间】:2008-11-12 18:53:51
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我知道你知道这一点,但这些锁将成为代码共享区域的生产力杀手。合并工具现在非常好,合并变更比你的老板想象的要容易。
  • @TomLeys 对于源代码或任何良好的可合并文件类型,您可能拥有权利。但并非总是如此,例如有时 SVN 用于管理数据文件或办公文档,它们都没有易于访问、广泛使用的合并工具。
  • 在 SVN 上合并 Informatica 文件(存储为 xml)怎么样?我想唯一的出路是 svn lock...不是吗?

标签: svn administration


【解决方案1】:

您要查找的是svnadmin lslocks 命令。

我在工作中进行了此设置,因为我们在 Subversion 存储库中保留了一些 Word 文档(使用 svn:needs-lock)。我每天设置一个 cron 作业,检查锁列表并将所有超过 7 天的锁的报告通过电子邮件发送给整个团队。这样我们就可以知道谁一直在偷懒并坐在锁定的文档副本上很长时间。

【讨论】:

  • Office 2003 现在已经内置了word 文档的合并功能。我不知道这个功能是什么时候引入的,但这可能意味着你不再需要锁定你的 word 文档了。
  • 谢谢格雷格。作为后续,你能告诉我你是如何让列表只显示超过 x 天的锁吗?
  • 我刚刚编写了一个脚本来解析“svnadmin lslocks”的输出,查看每个锁的创建日期,并从中计算天数。我的实际脚本正在工作中,目前我无法访问它,但应该很容易弄清楚。
【解决方案2】:

这可能不是您要寻找的答案,但您应该尝试让经理相信锁实际上不是最佳开发实践。有很多关于这个主题的文章,所以我不会在这里重复。

当您从锁定环境转到没有强制签出锁定的环境时,起初您认为这会导致混乱,但事实并非如此。 SVN 擅长在两个人处理同一个文件时合并更改,即使最终出现冲突,修复它们也不错。

比等着那个拿着重要文件去吃午饭的人要好得多,或者更糟糕的是,去度假了。

【讨论】:

  • 我尝试一步一步来。只是让这群人脱离 SourceSafe 就是一场战斗。一旦他们对 SVN 感到满意,那么我计划解决删除独占锁定的问题。
  • 在处理无法轻松合并或区分的二进制文件(如 Microsoft Office 文档)时,锁非常有用。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    例如

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

    查看the svnbook了解更多详情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2019-08-13
      相关资源
      最近更新 更多