![格式化 SVN 日志输出](https://linux22.com/image/1307612/%E6%A0%BC%E5%BC%8F%E5%8C%96%20SVN%20%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA.png)
我想获取提交给 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
删除除消息之外的所有内容。