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

  • 相关阅读:
    8 网站用户密码保存
    10 XSRF和XSS
    评分预测
    社会化推荐
    借助上下文信息
    UGC
    冷启动
    Git秘籍:在 Git 中进行版本回退
    Google在三大系统上停止对Chrome Apps的支持
    Windows 的 AD 域寄生于 Linux 机器
  • 原文地址:https://www.cnblogs.com/ayanmw/p/13725657.html
Copyright © 2020-2023  润新知