我想在给定文件的颠覆日志或历史记录中添加注释,但没有与该文件关联的更改。
有没有办法在不实际更改文件的情况下向 svn 日志添加或注入评论。
我正在寻找一种在某些事件发生后仅在日志中标记文件的方法,例如代码审查。
我不想做一个 svn 副本来创建一个全新的分支。我只想要在某个时间点与单个文件关联的评论。
这里有什么建议吗?
我想在给定文件的颠覆日志或历史记录中添加注释,但没有与该文件关联的更改。
有没有办法在不实际更改文件的情况下向 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"
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
现在,当您记录日志时,您可以看到该评论:
$ 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>
您可以在应该提交的文件上设置/更改用户定义的属性 - 即仅更改一些元数据而不会产生副作用。
svn propset my:log reason filename
svn commit filename