微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

svn 命令行 修改上次提交日志

引发此文原因

由于需要使用 jenkins 配合shell 脚本来做一些 和svn 相关的处理, 而svn 不支持 类似git 的tag,而用svn copy 的方式太low,也不方便直接在 svn log 中体现出来.
所以 我想 直接修改 svn 的 上次提交的log 信息,类似 git commit --ammend ,但是一般windows下用的TortoiseSVN可以直接修改,但是 svn 命令行如何修改呢?

百度了一下,居然都是复制粘贴, 许多上来就是:

1、将版本库repos/hooks/pre-revprop-change.tmp修改成pre-revprop-change
2、为pre-revprop-change加上执bai行权限:使用命令duchmod +x
3、修改pre-revprop-change

这不是我关心的,我当然已经配置过了的.我需要知道的是svn命令行如何修改.

所以,正确答案是?

先说 svn 查看 最近一条 svn log 的命令:

svn pget -r33848 --revprop svn:log |iconv -f GB2312 -t UTF-8

上面的 -r后面的数组是 最近的修改版本号,不知道为什么,我无法用 HEAD^1 或者 COMMITED ,PREV 来表达最近的一个log (而且是基于当前svn目录的,不知全局的),如果只能通过 svn info获取

rev=`LANG=en_US.UTF-8 svn info|iconv -f GB2312 -t UTF-8|grep "Last Changed Rev: "|cut -d ':' -f 2-|awk '{$1=$1};1'`

svn 修改指定版本的svn log的命令

svn propedit调用文本编辑器, 等待编辑结束 提交的

set SVN_EDITOR=notepad.exe
svn propedit -r33848  --revprop svn:log [SVN_URL]

svn propset 是直接通过命令行设置的, 设置的文本需要自己提取之前的文本,修改补充的.

svn propset -r33848   --revprop svn:log "new log message" URL

总结

svn 的属性包括两种,
一个是 仓库级别的,目录属性(包括递归获得的属性)
一个是 提交级别的,仅仅限于svn的一次commit提交

所以 svn 修改 log 或者author ,都是修改 属性, 这么记,就好办了~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐