3

需要一些关于 shell 命令的帮助,以根据 svn 注释中的字符串获取 subversion 中继 URL 中的所有转速。

我想把它放在一个文件上,但不在 URL 上。

我试图获得转速,但没有成功svn log URL --stop-on-copysvn log URL --xml

谢谢 !!

4

4 回答 4

1

对于 Subversion 1.8 它是

svn log URL --search STRING

于 2013-07-30T12:25:43.393 回答
1

另一种使用方式sed。它可能并不完美,但它也适用于多行注释。替换SEARCH_STRING为您的个人搜索。

svn log -l100 | sed -n '/^r/{h;d};/SEARCH_STRING/{g;s/^r\([[:digit:]]*\).*/\1/p}'
于 2013-07-30T10:27:13.917 回答
0

谢谢大家的帮助!!这对我有用:

svn log $URL --stop-on-copy | grep -B 2 $STRING | grep "^r" | cut -d"r" -f2 | cut -d" " -f1

Use "--stop-on-copy" or "--limit" options depending on the requirement.
于 2013-05-13T18:27:48.850 回答
0

尝试跟随。

x="refactoring"; svn log --limit 10 | egrep -i --color=none "($x|^r[0-9]+ \|.*lines$)" | egrep -B 1 -i --color=none $x | egrep --color=none "^r[0-9]+ \|.*lines$" | awk '{print $1}' | sed 's/^r//g'

替换refactoring为搜索字符串。
更改svn log参数以满足您的需要。
使用不区分大小写的匹配 ( egrep -i)。


根据评论进行编辑。

x="ILIES-113493"; svn log | egrep -i --color=none "($x|^r[0-9]+ \|.*lines$)" | egrep -B 1 -i --color=none $x | egrep --color=none "^r[0-9]+ \|.*lines$" | awk '{print $1}' | sed 's/^r//g'

笔记:

  • x是包含搜索字符串的变量,x在命令中的两个地方使用。
  • 为了x在 shell 本身中用作变量,您需要将整个命令放在一行中(from x=".."; svn log ... sed '...')。分号;可用于分隔同一行中的多个命令。
  • --limit 10在示例中使用了限制日志条目的数量、更改它以及使用其他svn log参数来满足您的需要。使用--limit 10会将搜索限制为 10 个最近的日志条目。
于 2013-05-10T17:16:54.080 回答