本文主要是介绍svn重设日志内容 及 如何修改SVN已提交项目的message log,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引自:http://blog.csdn.net/runboying/article/details/7467005
名称
svn propset — Set PROPNAME
to PROPVAL
on files, directories, or revisions.
概要
svn propset PROPNAME [PROPVAL | -F VALFILE] PATH...
svn propset PROPNAME --revprop -r REV [PROPVAL | -F VALFILE] [TARGET]
描述
设置文件、目录或者修订版本的属性PROPNAME
为PROPVAL
。第一个例子在工作副本创建了一个版本化的本地属性修改,第二个例子创建了一个未版本化的远程的对版本库修订版本的属性修改(TARGET
只是用来确定访问哪个版本库)。
提示 | |
---|---|
Subversion has a number of “special” properties that affect its behavior. See第 9.10 节 “Subversion 属性” later in this chapter for more on these properties. |
选项
--changelist ARG --depth ARG --encoding ENC --file (-F) FILE --force --quiet (-q) --recursive (-R) --revision (-r) REV --revprop --targets FILENAME
例子
Set the MIME type for a file:
$ svn propset svn:mime-type image/jpeg foo.jpg property 'svn:mime-type' set on 'foo.jpg'
在UNIX系统,如果你希望一个文件设置执行权限:
$ svn propset svn:executable ON somescript property 'svn:executable' set on 'somescript'
或许为了合作者的利益你有一个内部的属性设置:
$ svn propset owner sally foo.c property 'owner' set on 'foo.c'
如果你在特定修订版本的日志信息里有一些错误,并且希望修改,可以使用--revprop
设置svn:log
为新的日志信息:
$ svn propset --revprop -r 25 svn:log "Journaled about trip to New York." property 'svn:log' set on repository revision '25'
或者,你没有工作副本,你可以提供一个URL:
$ svn propset --revprop -r 26 svn:log "Document nap." \http://svn.red-bean.com/repos property 'svn:log' set on repository revision '25'
Lastly, you can tell propset to take its input from a file. You could even use this to set the contents of a property to something binary:
$ svn propset owner-pic -F sally.jpg moo.c property 'owner-pic' set on 'moo.c'<div>本文转自: <a target=_blank href="http://yin-gang.spaces.live.com/blog/cns%21756af5fdccd70454%21561.entry" style="color: rgb(255, 153, 0); text-decoration: none;">http://yin-gang.spaces.live.com/blog/cns!756af5fdccd70454!561.entry</a></div><div> </div><div> </div><div><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">直接在TortoiseSVN中修改过往日志,会提示: </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">DAV request failed;it's possible that the repository's pre-revprop-change hook either failed or is non-existent At least one property change failed; repository is unchanged. </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">因为SVN库中的日志本身是没有进行版本管理的,为防止误操作导致原日志信息丢失,所以缺省禁止对其进行修改。如果要能在客户端进行修改,必须在repository的hook目录下新建一个pre-revprop-change.bat,内容如下: </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1 </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">在属性修改前,该脚本会被执行,如返回0即表示同意修改。另外,注意该目录下本就有一个pre-revprop-change.tmpl,但那个是xNix的shell脚本,windows平台貌似不太好用。 </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">然后在客户端就可以正常修改了,其后台应该是调用类似下面的命令: </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><strong>svn propset -r </strong><em>N</em><strong> --revprop svn:log "<em>new log message</em>"</strong> URL </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">也可以在服务端通过运行下面的命令来做同样的事情,其中FILE是保存新日志信息的文件路径: </p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;">svnadmin setlog REPOS_PATH -r N FILE</p></div>
这篇关于svn重设日志内容 及 如何修改SVN已提交项目的message log的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!