【发布时间】:2014-04-18 18:10:31
【问题描述】:
在提交我的代码以回购之前,有人审查了我的代码。我想将提交中有关该人的信息保存为“审阅者”。审查代码的用户是提交代码的同一组用户。
svn 或 git 是否支持将附加信息保存到 repo?也许一些插件?我不想在评论中保存该信息。我需要额外的字段来提交。
【问题讨论】:
标签: svn tortoisesvn ankhsvn
在提交我的代码以回购之前,有人审查了我的代码。我想将提交中有关该人的信息保存为“审阅者”。审查代码的用户是提交代码的同一组用户。
svn 或 git 是否支持将附加信息保存到 repo?也许一些插件?我不想在评论中保存该信息。我需要额外的字段来提交。
【问题讨论】:
标签: svn tortoisesvn ankhsvn
好消息
你可以的
坏消息
你不能在 TortoiseSVN 中以漂亮的 GUI 方式进行操作
详情
Subversion 中有两种类型的属性
TortoiseSVN 的 GUI 和 property editors 提供界面或仅编辑第一种类型的属性(您可以将其用于您的任务,但要准确)。只是错误和不准确用法的示例(来自我的肮脏测试)
在/trunk TortoiseSVN 的 GUI 中,我添加了属性“Reviewer”,在属性编辑器中输入一些数据(可能是正确的)并提交为修订版 2
>svn pl file:///Z:/Repo/trunk -r 2 -v
Properties on 'file:///Z:/Repo/trunk':
Reviewer
Ann
稍后必须另外进行一些更改,它们成为修订版 3,该修订版在没有代码审查的情况下提交(仅作为示例),但我忘记了(或者为了不显示“No CR” - 忽略)干净Reviewer 的值或删除属性,结果肯定是存储在 repo 中的错误数据
>svn pl file:///Z:/Repo/trunk -v -r 3
Properties on 'file:///Z:/Repo/trunk':
Reviewer
Ann
属性版本化,以最后更改的形式存储在所有修订版中
错误(或破坏)仅在修订时修复,必须注明真正的新审稿人
>svn pl file:///Z:/Repo/trunk -v -r 4
Properties on 'file:///Z:/Repo/trunk':
Reviewer
Sally
另外,作为附加说明 - 这些文件|目录类型属性在日志中是不可见的
从另一方面来看,修订属性仅与一个修订相关,在日志中可见(有些令人头疼),但在 TortoiseSVN 中设置它的界面并不好(也很丑),必须在提交阶段手动定义(必须将选项 --with-revprop 添加到 svn ci ...) - 阅读 Properties page in SVN Book 并特别仔细阅读“可搜索性(或,为什么不属性)”备注。
不管怎样
>svn ci -m "Added details" --with-revprop "Reviewer=John"
Sending A.txt
Transmitting file data .
Committed revision 5.
将在日志中返回
>svn log --with-revprop Reviewer --xml -r 5
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="5">
<revprops>
<property
name="Reviewer">John</property>
</revprops>
</logentry>
</log>
需要的信息(注意强制选项--with-revprop 和--xml:--with-revprop 在纯文本模式下不起作用)和“审阅者”将仅用于此修订:对于没有--with-revprop 的常规提交无将被添加|继承
>svn log --with-revprop Reviewer --xml -r 6
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="6">
</logentry>
</log>
XML-logs 仍然存在搜索问题(因为我无法获得 任何 结果,使用 1.8+ --search)
【讨论】: