SVN 函数

目录

添加说明

用户贡献的说明 6 条说明

2
bohwaz
11 年前
此扩展还允许您访问目前未在任何地方记录的对象 API。它使用 Svn、SvnWc、SvnWcSchedule 和 SvnNode 类。因此您无法重新声明这些名称。

以下是一些基本的使用方法

<?php
$svn
= new Svn;
$log = $svn->log('https://svn.example/trunk/', Svn::HEAD);
?>

基本上,您可以通过将 svn_ 前缀替换为 $svn-> object 来使用这里记录的所有函数。常量也是如此,大多数常量可以直接从对象中使用。

如果您感兴趣,请确保查看扩展源代码以了解更多信息。
1
j dot saterfiel at gmail dot com
11 年前
截至 1.02 版,PHP SVN 库函数中未在此文档中列出的函数及其签名

array svn_info(string path [, bool recurse = true [, int revision = -1]])

resource svn_copy(string log, string src_path, string destination_path [, bool working_copy = true [, int revision = -1]])

mixed svn_move(string src_path, string dst_path [, bool force = false])

mixed svn_proplist(string path [, bool recurse = false, [int revision]])

mixed svn_propget(string path, string property_name [, bool recurse = false [, int revision]])

bool svn_lock(string comment, mixed targets [, bool steal_lock = false])

bool svn_unlock(mixed targets [, bool break_lock= false])

resource svn_switch(string path, string url [, bool working_copy = true])

您也可以对这些 $svn->lock() 使用新的 Svn() 对象

一般而言,任何函数都应该与 svn 命令行版本一样工作。例如,svn_info 可以针对远程 URL 或本地路径使用,svn_copy 也可以用于本地或远程操作。
1
pierre dot beaumadier at rhapso dot fr
16 年前
[编者注:这些常量由 Subversion 库本身定义,可能会在不另行通知的情况下更改(尽管情况往往很稳定)。]

供参考,以下是我得到的常量的数值

工作副本状态常量
* svn_wc_status_none => 1
* svn_wc_status_unversioned => 2
* svn_wc_status_normal => 3
* svn_wc_status_added => 4
* svn_wc_status_missing => 5
* svn_wc_status_deleted => 6
* svn_wc_status_replaced => 7
* svn_wc_status_modified => 8
* svn_wc_status_merged => 9
* svn_wc_status_conflicted => 10
* svn_wc_status_ignored => 11
* svn_wc_status_obstructed => 12
* svn_wc_status_external => 13
* svn_wc_status_incomplete => 14

节点类型常量
* svn_node_none => 0
* svn_node_file => 1
* svn_node_dir => 2
* svn_node_unknown => 3
0
chris dot lawrence at ljg dot com
14 年前
我也将其提交为一个 bug(因为它涉及缺少文档)。

此文档未提及“svn_delete”命令,但它已在 0.4 版中添加。您可以在这里查看发行说明
http://pecl.php.net/package/svn/0.4

此外,您可以查看当前源代码的内容(svn-0.5.1/svn.c)。

但您真正需要知道的是,svn_delete 命令在此原型下可以正常工作
svn_delete(string path [, bool force = true])

成功时返回 true,失败时返回 false。
0
Pieter van Ginkel
16 年前
经过一番搜索,我发现 Subversion 函数对我来说非常有用。虽然我需要花一些时间才能弄清楚它们如何协同工作,但这是一个 svn_fs_is_file 的基本示例

<?php

# 获取磁盘上存储库的句柄。请注意,这不是检出的项目,而是实际的 svn 存储库!

$repos_handle = svn_repos_open('/var/lib/svn');
$fs_handle = svn_repos_fs($repos_handle);

# 现在我们需要打开一个版本,因为这是 svn_fs_* 方法需要的。您可能需要最新的
# 版本,我们为此有一个辅助方法。

$youngest_rev = svn_fs_youngest_rev($fs_handle);
$fs_rev_handle = svn_fs_revision_root($fs_handle, $youngest_rev);

# 现在我们可以真正开始做一些事情了,例如 svn_fs_is_file 调用:

print_r(svn_fs_is_file($fs_rev_handle, '/a-file.txt'));

?>

关于这一切,有一点需要注意。您不能在调用 svn_fs_* 时让句柄过期。在实现辅助类时,我缓存了第一个和第三个句柄,但没有缓存第二个句柄。当您这样做时,PHP 会发生严重崩溃。在调用 svn_fs_* 方法时,请始终保留您获得的所有句柄的引用。
0
tbrendstrup
16 年前
"[编者注:这些常量由 Subversion 库本身定义,可能会在没有通知的情况下更改(尽管事情往往相当稳定)。]"

Subversion 开发者有一项政策,即在不更改主版本号的情况下不会更改此类内容,因此至少在 Subversion 2.0.0 发布之前,这些内容应该有效。(可能会添加更多值,但现有值不会更改)。
To Top