关于svn日志命令行的查询
我在windows上使用OrtoiseSVN,命令行关于svn日志命令行的查询,svn,tortoisesvn,Svn,Tortoisesvn,我在windows上使用OrtoiseSVN,命令行svn.exe 我正在努力获取日志消息中特定文本的最新svn log消息。 我使用下面的命令获取特定文本的所有日志消息 svn log --search="text" 我得到了一个包含该“文本”的消息列表。但是从这个列表中,我只想要最新的一个。我怎样才能得到它?您需要向命令中添加一个-l 1,如下所示: svn log -l 1 --search="text" -l标志是--limit的较短版本: --限制(-l)个数
svn.exe
我正在努力获取日志消息中特定文本的最新svn log
消息。
我使用下面的命令获取特定文本的所有日志消息
svn log --search="text"
我得到了一个包含该“文本”的消息列表。但是从这个列表中,我只想要最新的一个。我怎样才能得到它?您需要向命令中添加一个
-l 1
,如下所示:
svn log -l 1 --search="text"
-l
标志是--limit
的较短版本:
--限制(-l)个数
仅显示第一个NUM日志消息
通过first NUM log messages
表示它按从最新到最旧的顺序命中的第一条日志消息
您可以在svn日志命令上查看一些文档
根据@bahrep的回答,上述内容在这种情况下实际上不起作用,但是,仅使用svn.exe
似乎不可能做到这一点。我已经创建了一个python脚本来实现这一点:
import xml.etree.ElementTree as ET
import subprocess
import sys
# Change the below to your url and search string
url = "http://svn.apache.org/repos/asf/spamassassin/trunk"
search_term = "160"
# Run the svn log command and get the results as xml
args = ["svn", "log",'--search="{0}"'.format(search_term), url, "--xml"]
svn_out = subprocess.check_output(" ".join(args))
svn_xml = ET.fromstring(svn_out)
try:
# Get the latest log by revision number
latest_log = max(svn_xml, key=lambda x : int(x.attrib["revision"]))
except ValueError:
sys.exit("No Results Found") # Empty svn_xml would indicate no results.
# Print log author and message
author = latest_log.find("author").text
msg = latest_log.find("msg").text
print "{0} : {1}".format(author, msg)
在Windows中使用python 2.7时返回:
python .\svn_redemption.py
spamassassin_role : updated scores for revision 1607021 active rules added since last mass-check
基本上,它从命令行输出中获得xml
结果,然后获得最高版本作为结果
您需要将url
和search\u term
变量更改为所需的变量,但它应该可以工作。看起来仅使用svn.exe
命令行客户端是不可能的
下面的非实际部分,请参阅更新的@Noelkd的答案强>
@就我现在所见,诺尔克德的回答是不正确的。使用-l 1
选项限制搜索查询的范围,而不是它生成的输出。它无法找到任何内容<代码>svn日志--search=“0072”
在结果中给出3组行。但是当我使用svn log--search=“0072”-l 1
时,它不会返回任何行。似乎-l 1
选项将搜索限制为1个最新版本。在这种情况下它看起来没用。