[line 143]
Subversion Copy command manager class
Duplicate something in working copy or repos, remembering history.
SRC and DST can each be either a working copy (WC) path or URL: WC -> WC: copy and schedule for addition (with history) WC -> URL: immediately commit a copy of WC to URL URL -> WC: check out URL into WC, schedule for addition URL -> URL: complete server-side copy; used to branch & tag
Copies must include a message option (either with 'm', 'message', 'file' or 'F' keys), but the message itself may be blank.
$switches is an array containing one or more command line options defined by the following associative keys:
$switches = array(
'm [message]' => 'Specified commit message',
// either 'm' or 'message' may be used
'F [file]' => 'Read commit message data from specified file',
// either 'F' or 'file' may be used
'q [quiet]' => true|false,
// prints as little as possible
'r [revision]' => 'ARG (some commands also take ARG1:ARG2 range)
A revision argument can be one of:
NUMBER revision number
"{" 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
'force-
log' => true|false,
// force validity of log message source
'username' => 'Subversion repository login
',
'no-auth-cache' => true|false,
// Do not cache authentication tokens
'encoding' => 'ARG',
// treat value as being in charset encoding ARG
'config-
dir' => 'Path to a Subversion configuration directory
',
'parents' => true|false
);
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.
The editor-cmd option available on the command-line svn client is not available since this class does not operate as an interactive shell session.
Usage example: <?php
require_once 'VersionControl/SVN.php';
// Set up runtime options. Will be passed to all
// subclasses.
// Pass array of subcommands we need to factory
// Define any switches and aguments we may need
$switches = array('m' => 'Whoops! Better get this in all the right places',
'username' => 'user', 'password' => 'pass');
$args = array('svn://svn.example.com/repos/TestProj/trunk/template1/index.tpl',
'svn://svn.example.com/repos/TestProj/trunk/template2/index.tpl');
// Run command
try {
}
?>