VersionControl_SVN
[ class tree: VersionControl_SVN ] [ index: VersionControl_SVN ] [ all elements ]

Class: VersionControl_SVN_Merge

Source Location: /VersionControl_SVN-0.3.1/SVN/Merge.php

Class Overview

VersionControl_SVN
   |
   --VersionControl_SVN_Merge

Subversion Merge command manager class


Author(s):

Version:

  • 0.3.1

Copyright:

  • Copyright (c) 2004 Clay Loveless. All Rights Reserved.

Variables

Methods


Inherited Variables

Inherited Methods

Class: VersionControl_SVN

VersionControl_SVN::apiVersion()
Return the VersionControl_SVN API version
VersionControl_SVN::checkCommandRequirements()
Standardized validation of requirements for a command class.
VersionControl_SVN::declareErrorMessages()
Set up VersionControl_SVN error message templates for PEAR_ErrorStack.
VersionControl_SVN::factory()
Create a new VersionControl_SVN command object.
VersionControl_SVN::fetchCommands()
Scan through the SVN directory looking for subclasses.
VersionControl_SVN::fetchShortcuts()
Return the array of pre-defined shortcuts (also known as Alternate Names) for Subversion commands.
VersionControl_SVN::init()
Initialize an object wrapper for a Subversion subcommand.
VersionControl_SVN::parseOutput()
Handle output parsing chores.
VersionControl_SVN::prepare()
Prepare the command switches.
VersionControl_SVN::run()
Run the command with the defined switches.
VersionControl_SVN::setOptions()
Allow for overriding of previously declared options.

Class Details

[line 218]
Subversion Merge command manager class

Apply the differences between two sources to a working copy path.

From 'svn merge --help':

usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH] 2. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH] 3. merge -r N:M SOURCE [WCPATH]

  1. In the first form, the source URLs are specified at revisions N and M. These are the two sources to be compared. The revisions default to HEAD if omitted.
2. In the second form, the URLs corresponding to the source working copy paths define the sources to be compared. The revisions must be specified.

3. In the third form, SOURCE can be a URL, or working copy item in which case the corresponding URL is used. This URL, at revisions N and M, defines the two sources to be compared.

WCPATH is the working copy path that will receive the changes. If WCPATH is omitted, a default value of '.' is assumed, unless the sources have identical basenames that match a file within '.': in which case, the differences will be applied to that file.

Conversion of the above usage examples to VersionControl_SVN_Merge:

Example 1:

  1.  <?php
  2.  require_once 'VersionControl/SVN.php';
  3.  
  4.  // Setup error handling -- always a good idea!
  5.  $svnstack &PEAR_ErrorStack::singleton('VersionControl_SVN');
  6.  
  7.  // Set up runtime options. Will be passed to all
  8.  // subclasses.
  9.  $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);
  10.  
  11.  $args = array(
  12.   'svn://svn.example.com/repos/TestProj/trunk/example.php@4',   // sourceurl1
  13.   'svn://svn.example.com/repos/TestProj/branch/example.php@15'// sourceurl2
  14.   '/path/to/working/copy'                                       // wcpath
  15.  );
  16.  
  17.  $svn VersionControl_SVN::factory(array('merge')$options);
  18.  print_r($svn->merge->run($args));
  19.  
  20.  if (count($errs $svnstack->getErrors())) {
  21.      foreach ($errs as $err{
  22.          echo '<br />'.$err['message']."<br />\n";
  23.          echo "Command used: " $err['params']['cmd'];
  24.      }
  25.  }
  26.  ?>

Example 2:

  1.  <?php
  2.  require_once 'VersionControl/SVN.php';
  3.  
  4.  // Setup error handling -- always a good idea!
  5.  $svnstack &PEAR_ErrorStack::singleton('VersionControl_SVN');
  6.  
  7.  // Set up runtime options. Will be passed to all
  8.  // subclasses.
  9.  $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);
  10.  
  11.  $args = array(
  12.   '/path/to/working/copy/trunk/example.php@4',    // wcpath1
  13.   '/path/to/working/copy/branch/example.php@15'   // wcpath2
  14.  );
  15.  
  16.  $svn VersionControl_SVN::factory(array('merge')$options);
  17.  print_r($svn->merge->run($args));
  18.  
  19.  if (count($errs $svnstack->getErrors())) {
  20.      foreach ($errs as $err{
  21.          echo '<br />'.$err['message']."<br />\n";
  22.          echo "Command used: " $err['params']['cmd'];
  23.      }
  24.  }
  25.  ?>

Example 3:

  1.  <?php
  2.  require_once 'VersionControl/SVN.php';
  3.  
  4.  // Setup error handling -- always a good idea!
  5.  $svnstack &PEAR_ErrorStack::singleton('VersionControl_SVN');
  6.  
  7.  // Set up runtime options. Will be passed to all
  8.  // subclasses.
  9.  $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);
  10.  
  11.  $switches = array('r' => '5:8');
  12.  $args = array('svn://svn.example.com/repos/TestProj/trunk/example.php');
  13.  
  14.  $svn VersionControl_SVN::factory(array('merge')$options);
  15.  print_r($svn->merge->run($args$switches));
  16.  
  17.  if (count($errs $svnstack->getErrors())) {
  18.      foreach ($errs as $err{
  19.          echo '<br />'.$err['message']."<br />\n";
  20.          echo "Command used: " $err['params']['cmd'];
  21.      }
  22.  }
  23.  ?>

$switches is an array containing one or more command line options defined by the following associative keys:

  1.  $switches = array(
  2.   'r [revision]'  =>  'ARG (some commands also take ARG1:ARG2 range)
  3.                         A revision argument can be one of:
  4.                            NUMBER       revision number
  5.                            "{" DATE "}" revision at start of the date
  6.                            "HEAD"       latest in repository
  7.                            "BASE"       base rev of item's working copy
  8.                            "COMMITTED"  last commit at or before BASE
  9.                            "PREV"       revision just before COMMITTED',
  10.                       // either 'r' or 'revision' may be used
  11.   '[quiet]'     =>  true|false,
  12.                       // print as little as possible
  13.   'dry-run'       =>  true|false,
  14.                       // try operation but make no changes
  15.   'force'         =>  true|false,
  16.                       // force operation to run
  17.   'N'             =>  true|false,
  18.                       // operate on single directory only
  19.   'non-recursive' =>  true|false,
  20.                       // operate on single directory only
  21.   'diff3-cmd'     =>  'ARG',
  22.                       // use ARG as merge command
  23.   'ignore-ancestry' => true|false,
  24.                       // ignore ancestry when calculating merges
  25.   'username'      =>  'Subversion repository login',
  26.   'password'      =>  'Subversion repository password',
  27.   'no-auth-cache' =>  true|false,
  28.                       // Do not cache authentication tokens
  29.   'config-dir'    =>  'Path to a Subversion configuration directory'
  30.  );

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.

  • Author: Clay Loveless <clay@killersoft.com>
  • Version: 0.3.1
  • Copyright: Copyright (c) 2004 Clay Loveless. All Rights Reserved.


[ Top ]


Class Variables

$args = array()

[line 257]

Command-line arguments that should be passed outside of those specified in switches.
  • Access: public

Type:   array


[ Top ]

$min_args =  1

[line 266]

Minimum number of args required by this subcommand.

See Version Control with Subversion, Subversion Complete Reference for details on arguments for this subcommand.

  • Access: public

Type:   int


[ Top ]

$passthru =  false

[line 282]

Use exec or passthru to get results from command.
  • Access: public

Type:   bool


[ Top ]

$required_switches = array()

[line 275]

Switches required by this subcommand.

See Version Control with Subversion, Subversion Complete Reference for details on arguments for this subcommand.

  • Access: public

Type:   array


[ Top ]

$valid_switches = array('r',
                                'revision',
                                'N',
                                'non-recursive',
                                'non_recursive',
                                'q',
                                'quiet',
                                'force',
                                'dry-run',
                                'dry_run',
                                'diff3-cmd',
                                'ignore-ancestry',
                                'ignore_ancestry',
                                'username',
                                'password',
                                'no-auth-cache',
                                'no_auth_cache',
                                'non-interactive',
                                'non_interactive',
                                'config-dir',
                                'config_dir'
                                )

[line 226]

Valid switches for svn merge
  • Access: public

Type:   array


[ Top ]



Method Detail

parseOutput   [line 389]

mixed parseOutput( array $out)

Handles output parsing of standard and verbose output of command.
  • Return: Returns output requested by fetchmode (if available), or raw output if desired fetchmode is not available.
  • Access: public

Overrides VersionControl_SVN::parseOutput() (Handle output parsing chores.)

Parameters:

array   $out   —  Array of output captured by exec command in run.

[ Top ]

parseOutputArray   [line 422]

void parseOutputArray( $out)

Helper method for parseOutput that parses output into an associative array
  • Todo: Finish this method! : )

Parameters:

   $out   — 

[ Top ]

prepare   [line 295]

int prepare( void 0)

Prepare the svn subcommand switches.

Defaults to non-interactive mode, and will auto-set the --xml switch (if available) if $fetchmode is set to VERSIONCONTROL_SVN_FETCHMODE_XML, VERSIONCONTROL_SVN_FETCHMODE_ASSOC or VERSIONCONTROL_SVN_FETCHMODE_OBJECT

  • Return: true on success, false on failure. Check PEAR_ErrorStack for error details, if any.

Overrides VersionControl_SVN::prepare() (Prepare the command switches.)

Parameters:

void   0   — 

[ Top ]


Documentation generated on Thu, 10 Dec 2015 05:47:00 +0000 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.