(PECL svn >= 0.1.0)
svn_checkout — Checks out a working copy from the repository
$repos
, string $targetpath
[, int $revision
[, int $flags
= 0
]] )
Checks out a working copy from the repository at repos
to targetpath
at revision revision
.
repos
String URL path to directory in repository to check out.
targetpath
String local path to directory to check out in to
Note: 相对路径将会以PHP执行文件所在目录作为当前工作目录进行解析。如果希望依据脚本所在目录解析, 使用 realpath() 或 dirname(__FILE__)。
revision
Integer revision number of repository to check out. Default is HEAD, the most recent revision.
flags
Any combination of SVN_NON_RECURSIVE
and
SVN_IGNORE_EXTERNALS
.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。
Example #1 Basic example
This example demonstrates how to check out a directory from a repository to a directory named calc:
<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>
The dirname(__FILE__) call is necessary in order to convert the calc relative path into an absolute one. If calc exists, you can also use realpath() to retrieve an absolute path.
Anonymous (2008-04-14 01:08:07)
The current version of svn does not seem to indicate an error properly when passed an invalid string, so it's important to check your paths and to clean them before calling svn or it will just not work.
Under Windows getting the format correctly is a bit tricky, so here's the format it wants:
file:///c:/path/to/repos
Note the following:
1) The extra slash after the protocol designates 'root' under Unix (file:///path/to/repos points to /path/to/repos in Unix), but it seems to have no real meaning in the string on Windows (?).
2) Paths are usually reported with backslashes, so you'll need to replace those with slashes manually before handing them off to Subversion.