13 年前
似乎有一个未记录的函数 svn_info(可以说是此功能的正确名称),它几乎与 svn_status 相同,但忽略了第二个参数。
不幸的是,这两个函数都不能直接用于仅检索工作副本的当前版本,但 svn_status 和 SVN_NON_RECURSIVE|SVN_ALL 的组合将起作用;只需执行以下命令
<?php
svn_status(ROOT, SVN_NON_RECURSIVE|SVN_ALL);
?>
(PECL svn >= 0.1.0)
svn_status — 返回工作副本文件和目录的状态
path
要检索状态的本地文件或目录的路径。
注意: 相对路径将被解析,就好像当前工作目录是包含 PHP 二进制文件的目录一样。要使用调用脚本的工作目录,请使用 realpath() 或 dirname(__FILE__)。
flags
Svn::NON_RECURSIVE
、Svn::ALL
(无论修改状态如何)、Svn::SHOW_UPDATES
(将为过时项添加条目)、Svn::NO_IGNORE
(扫描新文件时忽略 svn:ignore
属性)和 Svn::IGNORE_EXTERNALS
的任意组合。
返回一个数值索引的数组,其中包含关联数组,详细说明存储库中项目的狀態
Array ( [0] => Array ( // information on item ) [1] => ... )
项目的信息是一个关联数组,可以包含以下键
update
设置为 true
时才准确。有关可能的取值,请参考 状态常量。update
设置为 true
时才准确。有关可能的取值,请参考 状态常量。true
时设置。)true
时设置。)项目是否使用 switch 命令进行切换。(仅当为 true
时设置)
项目计划的操作,即添加或删除。这些幻数的常量不可用,可以通过使用以下方法来模拟:
true
时设置。)true
时设置。)true
时设置。)update
影响。)update
影响。)update
影响。)
示例
示例 #1 基本示例
此示例演示了此函数的基本、理论使用方式。
<?php
print_r(svn_status(realpath('wc')));
?>
Array ( [0] => Array ( [path] => /home/bob/wc/sandwich.txt [text_status] => 8 // item was modified [repos_text_status] => 1 // no information available, use update [prop_status] => 3 // no changes [repos_prop_status] => 1 // no information available, use update [name] => sandwich.txt [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt [repos] => http://www.example.com/svnroot/ [revision] => 123 [kind] => 1 // file [schedule] => 0 // no special actions scheduled [cmt_date] => 1165543135 [cmt_rev] => 120 [cmt_author] => Alice [prop_time] => 1180201728 [text_time] => 1180201729 ) )
警告
13 年前
似乎有一个未记录的函数 svn_info(可以说是此功能的正确名称),它几乎与 svn_status 相同,但忽略了第二个参数。
不幸的是,这两个函数都不能直接用于仅检索工作副本的当前版本,但 svn_status 和 SVN_NON_RECURSIVE|SVN_ALL 的组合将起作用;只需执行以下命令
<?php
svn_status(ROOT, SVN_NON_RECURSIVE|SVN_ALL);
?>