哪个命令可以查询Subversion存储库以查找特定用户锁定的所有文件?

时间:2009-05-28 20:54:14

标签: svn

在Subversion存储库中查询由特定用户锁定的所有文件签出的命令是什么?

4 个答案:

答案 0 :(得分:3)

在subversion中,“签出”仅表示您已在存储库中创建了某个文件夹的本地工作副本。然后,您可以在此工作副本上脱机工作(直到您需要执行一些需要与存储库进行通信的操作)。

虽然离线,您可以随时删除您的工作副本,因此服务器无法知道谁还有“已检出”的内容以及未签出的内容。

<小时/> 编辑:所以你的意思是锁。要列出特定用户锁定的所有内容,您可以使用一些svn + xml + xslt voodoo。首先,创建一个svninfo.xml文件,如下所示:

    svn info -R --xml http://url/to/project/root >> svninfo.xml

<?xml version="1.0"?>

之后的结果文件中添加此xslt样式表预处理器元素
     <?xml-stylesheet type="text/xsl" href="svnlocks.xsl" ?>

使用此内容创建svnlocks.xsl文件,将username替换为实际用户名:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template match="/">
      <html><body>
      <xsl:apply-templates select="info/entry[lock/owner='username']" />
      </body></html>
   </xsl:template>
   <xsl:template match="entry">
      <xsl:value-of select="@path"/><br/>
   </xsl:template>
</xsl:stylesheet>

最后,打开你最喜欢的svninfo.xml     浏览器。

答案 1 :(得分:1)

使用svn status获取用户锁定的所有文件的列表 - 我的意思是,所有设置了svn:needs-lock属性的文件,并且用户已使用{{获取了这些锁定3}}命令。

如果您正在使用命令行,则会在每个锁定的文件上看到O标记,运行svn status --show-updates。要找出锁定该文件的用户,请使用svn lock。 (注意,如果您锁定了文件,则svn状态将显示K)。

答案 2 :(得分:0)

您是要搜索特定用户锁定的文件吗?因为您无法搜索特定用户签出的文件(不会突袭该用户的主目录)。

答案 3 :(得分:0)

如果您能够在存储库计算机上使用svnadmin,则可以使用svnadmin lslocks <repo>获取该存储库上保留的所有锁的详细信息。从那里,你可以写一些东西来按用户名过滤。

有关详细信息,请参阅The Subversion Book: Advanced Locks (Breaking & Stealing Locks)