请注意,不提供修订版就使用 svn_log 比提供修订版要慢得多。示例
$ time php -r "svn_log('https:///svn/shopadsl');"
实际 0 分 2.140 秒
用户 0 分 0.140 秒
系统 0 分 0.000 秒
与
$ time php -r "svn_log('https:///svn/shopadsl', 0, 45);"
实际 0 分 0.063 秒
用户 0 分 0.024 秒
系统 0 分 0.016 秒(PECL svn >= 0.1.0)
svn_log — 返回仓库 URL 的提交日志消息
$repos_url,$start_revision = ?,$end_revision = ?,$limit = 0,$flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY
svn_log() 返回仓库 URL repos_url 中项目的完整历史记录,如果设置了 start_revision,则返回特定修订版的历史记录。此函数等效于 svn log --verbose -r $start_revision $repos_url。
repos_url要从中检索日志历史记录的项目的仓库 URL。
start_revision要检索的第一个日志的修订版号。使用 SVN_REVISION_HEAD 从最新修订版检索日志。
end_revision要检索的最后一个日志的修订版号。如果指定,则默认为 start_revision,否则默认为 SVN_REVISION_INITIAL。
limit要检索的日志数量。
flagsSVN_OMIT_MESSAGES、SVN_DISCOVER_CHANGED_PATHS 和 SVN_STOP_ON_COPY 的任意组合。
成功时,此函数返回一个文件列表数组,格式如下:
[0] => Array, ordered most recent (highest) revision first
(
[rev] => integer revision number
[author] => string author name
[msg] => string log message
[date] => string date formatted per ISO 8601, i.e. date('c')
[paths] => Array, describing changed files
(
[0] => Array
(
[action] => string letter signifying change
[path] => absolute repository path of changed file
)
[1] => ...
)
)
[1] => ...
注意:
即使没有日志消息或只有一个日志消息,输出始终为数值索引的数组。
action 的值是 » 第一列中的状态输出 的一个子集,可能的值为
| 字母 | 描述 |
|---|---|
| M | 项目/属性已修改 |
| A | 项目已添加 |
| D | 项目已删除 |
| R | 项目已替换 |
如果项目没有更改,则返回空数组。
示例 #1 svn_log() 示例
<?php
print_r( svn_log('http://www.example.com/', 23) );
?>以上示例将输出类似以下内容:
Array
(
[0] => Array
(
[rev] => 23
[author] => 'joe'
[msg] => 'Add cheese and salami to our sandwich.'
[date] => '2007-04-06T16:00:27-04:00'
[paths] => Array
(
[0] => Array
(
[action] => 'M'
[path] => '/sandwich.txt'
)
)
)
)
此函数为 *实验性* 函数。此函数的行为、名称和周围文档可能会在 PHP 的未来版本中未经通知而更改。使用此函数需自行承担风险。
请注意,不提供修订版就使用 svn_log 比提供修订版要慢得多。示例
$ time php -r "svn_log('https:///svn/shopadsl');"
实际 0 分 2.140 秒
用户 0 分 0.140 秒
系统 0 分 0.000 秒
与
$ time php -r "svn_log('https:///svn/shopadsl', 0, 45);"
实际 0 分 0.063 秒
用户 0 分 0.024 秒
系统 0 分 0.016 秒