将其他用户设置为svn commit

时间:2014-04-18 18:10:31

标签: svn tortoisesvn ankhsvn

在提交我的代码以回复某人之前,请检查我的代码。我想在提交中将有关该人的信息保存为“审阅者”。审核代码的用户是提交代码的用户组。

svn或git是否支持将其他信息保存到repo?也许一些插件?我不想在评论中保存这些信息。我需要额外的字段来提交。

1 个答案:

答案 0 :(得分:0)

好消息

你可以做到

坏消息

你不能用很好的GUI方式在TortoiseSVN中做到这一点

<强>详情

Subversion中有两种类型的属性

  • 存储库中的文件和文件夹的版本化属性
  • 修订版
  • 的无版本属性

TortoiseSVN的GUI和property editors仅提供界面gor编辑的第一类属性(您可以将其用于任务,但具有准确性)。只是错误和不准确的使用样本(来自我的脏测试)

在TortoiseSVN的/trunk GUI中我添加了属性“Reviewer”,在属性编辑器中输入一些数据(大概是正确的)并作为修订版2提交

>svn pl file:///Z:/Repo/trunk -r 2 -v
Properties on 'file:///Z:/Repo/trunk':
  Reviewer
    Ann

稍后必须进行一些更改,并且它们成为修订版3,它已经提交(仅作为示例)而没有代码审查,但我忘记了(或者为了不显示“No CR” - 忽略)clean审阅者的价值或删除属性,结果肯定是存储在仓库中的错误数据

>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日志的<+>任何结果,使用1.8 + --search