关于svn日志命令行的查询



我在windows上使用TortoiseSVN,使用命令行svn.exe .

我正在努力获得日志消息中特定文本的最新svn log消息。我使用下面的命令来获取特定文本的所有日志消息。

svn log --search="text"

我得到具有该"文本"的消息列表。但从这个列表中,我只想要最新的一个。我怎样才能得到它呢?

您需要像这样在命令中添加-l 1:

svn log -l 1 --search="text"

-l标志是--limit的简写版本:

——limit (-l) NUM

只显示第一个NUM日志消息。

这里的first NUM log messages是指从latest ->古老。

您可以在这里查看svn log命令上的一些文档


在这种情况下,根据@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结果,然后获得最高修订作为结果。

您需要更改urlsearch_term变量为您想要的,但它应该工作

看起来仅使用svn.exe命令行客户端是不可能的。

下面不真实的部分,参见更新的@Noelkd的答案!

@Noelkd的答案是不正确的,就我现在所看到的。使用-l 1选项限制了搜索查询的范围,而不是它产生的输出。

最新更新