Subversion没有作者,日期和消息

Hak*_*kar 5 svn

我一直在解决一些处理Subversion从特定存储库提交的工具.

虽然大多数修订都正确显示,但'svn log'返回一些没有作者,日期或消息的修订:

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


------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*ser 4

缺少作者或日期并不表示存在权限问题。缺少日志消息可能表明存在权限问题。

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

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

尤其:

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