格式化 SVN 日志输出

格式化 SVN 日志输出

我想获取提交给 svn 的文件的日志消息。我目前使用以下命令:

 svn --non-interactive log "myfile.c" | sed -e "s/[\-]//g"'   

输出为:

r42153 | sam | 2012-03-02 14:51:53 -0800 (Fri, 02 Mar 2012) | 1 line

Update to code.  

我想删除第一行“r42153 | sam |....”并仅输出日志消息。

我怎样才能做到这一点?

答案1

用来| grep -v "what you don't want to include"省略不需要的行。但是,如果试图用省略任何内容,则会\n省略所有内容,因此不要这样做。

答案2

使用 grep 时,你可以从提交消息中丢弃有用的行。SVN 提供了现成的 propget 命令:

使用

$ svn propget svn:log --revprop -r R [TARGET]

获取提交消息

或者

$ svn propget svn:log --revprop -r R [TARGET] --xml

以 XML 形式获取。

TARGET 是存储库的路径,如果您在工作副本中,则可以省略。

答案3

您可以使用| sed -e ':a;N;$!ba;s/-\+\(\n[^\n]*\n\)\?//g'来删除所有“---”及其下一行。

答案4

只要你记录单个修订,你就可以使用

svn log -rXXXX | tail -n+4 | head -n-1

删除除消息之外的所有内容。

相关内容