我想知道是否有一种简单的方法可以创建一个从 svn 中获取修订号的脚本,如果我们提供一条与之关联的消息。
示例:我知道该消息包含“添加的方法 A”,该消息是在我提交更改后写入的。现在,如果我不记得与之关联的修订号,并且我想以编程方式(脚本/批处理)获取关联的修订号,而无需通过日志手动准备)
TortoiseSVN 有一个搜索框。打开您感兴趣的存储库目录的日志。如果您不确定它是哪个目录,请提取存储库根目录的日志。
拉起日志的方法:
打开 TortoiseSVN 存储库浏览器(右键单击 TortoiseSVN->Repo-Browser)并输入存储库 URL。
右键单击存储库根目录,然后单击“显示日志”
出于性能原因,TortoiseSVN 一开始只会显示最近 100 次修订的日志。如果您认为更改比这更早,您可以单击“显示范围”按钮,并告诉它显示特定修订范围的日志。您可以只说从修订 0 到 HEAD(最新),它将获取 repo 中的所有修订。
日志窗口的顶部是搜索栏。输入您要查找的文本,您应该会找到它。
你可以使用:
svn log | grep -B 3 "added method A"
grep 命令的选项 -B <NUM> 在匹配行之前打印前导上下文的 <NUM> 行。因此,您可以看到带有修订号的日志条目的标题。
此示例查找带有文本模式“#internal”的修订:
$: svn log $svnurl | grep -B 3 #internal
------------------------------------------------------------------------
r1459 | user001 | 2015-07-22 15:52:54 +0200 (Wed, 22 Jul 2015) | 1 line
#internal
------------------------------------------------------------------------
r1457 | user001 | 2015-07-21 13:47:19 +0200 (Tue, 21 Jul 2015) | 1 line
#internal
$: