页首Html代码

返回顶部

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 ,都是修改 属性, 这么记,就好办了~

posted @ 2020-09-24 18:28  ayanmw  阅读(1825)  评论(0编辑  收藏  举报

页脚Html代码