Ste*_*man 6 svn version-control tortoisesvn
我想为给定文件的subversion日志或历史记录添加注释,但没有与该文件关联的更改.
有没有办法在不实际更改文件的情况下向svn日志中添加或注入注释.
我正在寻找一种方法来在事件发生后标记日志中的文件,例如代码审查.
我不想做一个svn副本来创建一个全新的分支.我只想在某个时间点与单个文件关联的注释.
这里有什么建议?
在Subversion中,有两种类型的属性:
最重要的是,与每个修订版关联的三个特殊修订版属性非常重要:
svn:log:这是提交消息svn:date:这是提交完成的日期和时间.svn:author:这是进行提交的用户.所以,问题是你想做什么.如果要向文件添加注释,可以将文件属性添加到该文件.但是,这被认为是文件更改,因此您必须执行签出,svn pset然后是在该文件上创建新修订的提交.
如果要向存储库中的特定修订添加新注释,则不必创建新修订即可.但是,您必须创建一个pre-revprop-commit允许您进行这些修改的挂钩文件.你有两种方法:
svn:log用你的评论修改这可能是最简单的方法.但是,不会记录提交消息中的更改,因此您将丢失进程中的原始提交消息.优点是此注释将自动显示该svn:log命令.例如:
$ old_comment=$(svn pget -r 100 -revprop svn:log http://myhost/svn/repos)
$ new_comment="$old_comment
> ================ COMMENT ON REVISION ================
> This was a change needed for a particular customer"
$ svn pset -r 100 --revprop svn:log "$new_comment"
Run Code Online (Sandbox Code Playgroud)
corp:comment(我corp用来表示与我公司相关的特殊属性).您可以在svn log消息中显示这些注释,但只能以xml格式显示.例如:
$ svn pset --revprop -r 100 foo:comment "This was a change needed for a particular customer" http://host/svn/repos
Run Code Online (Sandbox Code Playgroud)
现在,当您执行日志时,您可以看到该注释:
$ svn log --with-revprop foo:comment --xml -r 100 http://host/svn/repos
<?xml version="1.0"?>
<log>
<logentry
revision="100">
<revprops>
<property
name="foo:comment">This was a change needed for a particular customer</property>
</revprops>
</logentry>
</log>
Run Code Online (Sandbox Code Playgroud)
您可以在应提交的文件上设置/更改用户定义的属性 - 即仅更改一些元数据而不会造成副作用。
svn propset my:log reason filename
svn commit filename
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3828 次 |
| 最近记录: |