svn_log

(PECL svn >= 0.1.0)

svn_log返回存储库 URL 的提交日志消息

描述

svn_log(
    字符串 $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

要检索的日志数量。

flags

SVN_OMIT_MESSAGESSVN_DISCOVER_CHANGED_PATHSSVN_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 的未来版本中发生更改,恕不另行通知。使用此函数需自担风险。

添加注释

用户贡献的注释 1 个注释

php dot net at gnur dot nl
13 年前
请注意,使用 svn_log 而不提供修订版比提供修订版要慢得多。示例

$ time php -r "svn_log('http://localhost/svn/shopadsl');"

real 0m2.140s
user 0m0.140s
sys 0m0.000s

VS

$ time php -r "svn_log('http://localhost/svn/shopadsl', 0, 45);"

real 0m0.063s
user 0m0.024s
sys 0m0.016s
To Top