Source for file Switch.php
Documentation is available at Switch.php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
* +----------------------------------------------------------------------+
* | This LICENSE is in the BSD license style. |
* | http://www.opensource.org/licenses/bsd-license.php |
* | Redistribution and use in source and binary forms, with or without |
* | modification, are permitted provided that the following conditions |
* | * Redistributions of source code must retain the above copyright |
* | notice, this list of conditions and the following disclaimer. |
* | * Redistributions in binary form must reproduce the above |
* | copyright notice, this list of conditions and the following |
* | disclaimer in the documentation and/or other materials provided |
* | with the distribution. |
* | * Neither the name of Clay Loveless nor the names of contributors |
* | may be used to endorse or promote products derived from this |
* | software without specific prior written permission. |
* | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
* | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
* | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
* | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
* | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
* | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
* | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
* | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
* | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
* | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
* | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
* | POSSIBILITY OF SUCH DAMAGE. |
* +----------------------------------------------------------------------+
* @category VersionControl
* @package VersionControl_SVN
* @author Clay Loveless <clay@killersoft.com>
* @author Alexander Opitz <opitz.alexander@gmail.com>
* @copyright 2004-2007 Clay Loveless
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @link http://pear.php.net/package/VersionControl_SVN
require_once 'VersionControl/SVN/Command.php';
* Subversion Switch command manager class
* Update the working copy to a different URL.
* From 'svn switch --help':
* usage: 1. switch URL [PATH]
* 2. switch --relocate FROM TO [PATH...]
* 1. Update the working copy to mirror a new URL within the repository.
* This behaviour is similar to 'svn update', and is the way to
* move a working copy to a branch or tag within the same repository.
* 2. Rewrite working copy URL metadata to reflect a syntactic change only.
* This is used when repository's root URL changes (such as a schema
* or hostname change) but your working copy still reflects the same
* directory within the same repository.
* Conversion of the above usage example to VersionControl_SVN_Switch:
* require_once 'VersionControl/SVN.php';
* // Set up runtime options. Will be passed to all
* $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);
* $switches = array('relocate' => 'true');
* 'svn://svn.example.com/repos/TestProj/trunk',
* 'svn://svn.example.com/repos/TestProj_Fork/trunk',
* '/path/to/working/copy'
* $svn = VersionControl_SVN::factory(array('switch'), $options);
* print_r($svn->switch->run($args, $switches));
* } catch (VersionControl_SVN_Exception $e) {
* print_r($e->getMessage());
* $switches is an array containing one or more command line options
* defined by the following associative keys:
* 'r [revision]' => 'ARG (some commands also take ARG1:ARG2 range)
* A revision argument can be one of:
* "{" DATE "}" revision at start of the date
* "HEAD" latest in repository
* "BASE" base rev of item's working copy
* "COMMITTED" last commit at or before BASE
* "PREV" revision just before COMMITTED',
* // either 'r' or 'revision' may be used
* // operate on single directory only
* 'non-recursive' => true|false,
* // operate on single directory only
* 'q [quiet]' => true|false,
* // print as little as possible
* // use ARG as merge command
* 'relocate' => true|false,
* // relocate via URL-rewriting
* 'username' => 'Subversion repository login',
* 'password' => 'Subversion repository password',
* 'no-auth-cache' => true|false,
* // Do not cache authentication tokens
* 'config-dir' => 'Path to a Subversion configuration directory'
* Note: Subversion does not offer an XML output option for this subcommand
* The non-interactive option available on the command-line
* svn client may also be set (true|false), but it is set to true by default.
* @category VersionControl
* @package VersionControl_SVN
* @author Clay Loveless <clay@killersoft.com>
* @author Alexander Opitz <opitz.alexander@gmail.com>
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @link http://pear.php.net/package/VersionControl_SVN
* Minimum number of args required by this subcommand.
* See {@link http://svnbook.red-bean.com/svnbook/ Version Control with Subversion},
* Subversion Complete Reference for details on arguments for this subcommand.
* Constuctor of command. Adds available switches.
Documentation generated on Sat, 09 Feb 2013 12:30:13 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.
|