Subversion没有作者,日期和消息

时间:2013-11-27 20:37:52

标签: svn

我一直在对一些处理Subversion从特定存储库提交的工具进行故障排除。

虽然大多数修订都已正确显示,但“svn log”会返回部分修订版,但没有作者,日期或消息:

svn log http://myrepository.com -r 123456
------------------------------------------------------------------------
r123456 | (no author) | (no date) | 1 line


------------------------------------------------------------------------

我怀疑这是因为缺少对更改路径上特定文件的访问权限。这可能不仅仅是缺乏权限吗?

1 个答案:

答案 0 :(得分:3)

缺少作者或日期并不表示权限问题。缺少日志消息可能是权限问题的标志。

首先,Subversion实际上并不需要svn:author,svn:date或svn:log属性实际上设置为任何东西。一般情况下,除非有人使用propdel命令(例如svn propdel svn:author --revprop -r 1234 $URL)删除了属性,否则不会在没有svn:author或svn:date的情况下结束提交。 Subversion试图鼓励你留下一条日志消息,但你也可以给它一个空白消息,除非它受到提交钩子的限制。因此,完全有可能有人故意对修订进行了这些更改。这也意味着您用于处理Subversion提交的任何工具都应该能够处理缺少这些值。

关于权限,如果您正在使用基于路径的授权(带有svnserve的authz-db或带有httpd的AuthzSVNAccessFile),那么您对修订版修改的路径的访问权限可能会限制您可以看到的内容。

特别是:

  • 如果您有权访问所有路径,您将看到要求的所有内容,包括所有已更改的路径和所有修订属性。
  • 如果您只能访问某些路径,那么在使用-v和仅使用svn:author和svn:date revision属性时,您将只能看到列出的已更改路径。 svn:log将被隐藏,因为它可能包含您无权访问的文件的名称。其他修订属性(甚至是自定义属性)也将被省略。
  • 如果您无法访问修订版更改的任何路径,则修订将完全从日志输出中省略。