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 ,都是修改 屬性, 這么記,就好辦了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM