在Subversion存储库中查询由特定用户锁定的所有文件签出的命令是什么?
答案 0 :(得分:3)
在subversion中,“签出”仅表示您已在存储库中创建了某个文件夹的本地工作副本。然后,您可以在此工作副本上脱机工作(直到您需要执行一些需要与存储库进行通信的操作)。
虽然离线,您可以随时删除您的工作副本,因此服务器无法知道谁还有“已检出”的内容以及未签出的内容。
<小时/> 编辑:所以你的意思是锁。要列出特定用户锁定的所有内容,您可以使用一些svn + xml + xslt voodoo。首先,创建一个svninfo.xml文件,如下所示:
svn info -R --xml http://url/to/project/root >> svninfo.xml
在<?xml version="1.0"?>
<?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)。