# svn_commit

(PECL svn >= 0.1.0)

svn_commit — 将修改的本地文件副本发送至版本库

### 说明

svn_commit ( string `$log` , array `$targets` [, bool `$recursive` = true ] ) : array

提交本地文件副本的改变使用参数 `targets` ，使用 `log` 参数作为提交日志，`targets` 参数默认使用递归，`recursive` 参数设置为 `FALSE` 将不使用递归。

> Note: 此方法没有指定任何认证参数，用户名和密码必须使用 svn_auth_set_parameter()

### 参数

`log`

  长文本的提交日志

`targets`

  本地文件路径数组

  Warning

  此参数必须是一个数组，一个单一字符串是不被接收的。

  > Note: 相对路径将会以PHP执行文件所在目录作为当前工作目录进行解析。如果希望依据脚本所在目录解析, 使用realpath() 或 dirname(__FILE__)。

`recursive`

  布尔类型，是否禁用 `targets` 递归。默认值为 `TRUE`

### 返回值

返回数组信息如下:

    array(
        0 => 提交版本号
        1 => ISO 8601 格式的提交时间
        2 => 提交者
    )

失败返回 `FALSE`

### 注释

Warning

此函数是实验性的。此函数的表象，包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

### 范例

Example #1 基本示例

这个例子是将一个计算程序目录提交到一个版本库，使用用户名为 Bob 以及密码为 abc123 (提倡可以使用强密码)

    <?php
    svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
    svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
    var_dump(svn_commit('Log message of Bob\'s commit', array(realpath('calculator'))));
    ?>

以上例程会输出：

    array(
      0 => 1415,
      1 => '2007-05-26T01:44:28.453125Z',
      2 => 'Bob'
    )

### 参见

- svn_auth_set_parameter() - Sets an authentication parameter
- » 参见 svn 官方文档