[line 207]
Subversion Diff command manager class
Display the differences between two paths.
From 'svn diff --help':
usage: 1. diff [-r N[:M]] [--old OLD-TARGET] [--new NEW-TARGET] [PATH...] 2. diff -r N:M URL 3. diff [-r N[:M]] URL1[@N] URL2[@M]
- Display the differences between OLD-TARGET and NEW-TARGET. PATHs, if
given, are relative to OLD-TARGET and NEW-TARGET and restrict the output
to differences for those paths. OLD-TARGET and NEW-TARGET may be working
copy paths or URL[@REV].
OLD-TARGET defaults to the path '.' and NEW-TARGET defaults to OLD-TARGET. N defaults to BASE or, if OLD-TARGET is an URL, to HEAD. M defaults to the current working version or, if NEW-TARGET is an URL, to HEAD.
'-r N' sets the revision of OLD-TGT to N, '-r N:M' also sets the revision of NEW-TGT to M.
2. Shorthand for 'svn diff -r N:M --old=URL --new=URL'.
3. Shorthand for 'svn diff [-r N[:M]] --old=URL1 --new=URL2'
Use just 'svn diff' to display local modifications in a working copy
Conversion of the above usage examples to VersionControl_SVN_Diff:
Example 1: <?php
require_once 'VersionControl/SVN.php';
// Set up runtime options. Will be passed to all
// subclasses.
$switches = array('r' => '5:8');
$args = array('svn://svn.example.com/repos/TestProj/trunk/example.php',
'svn://svn.example.com/repos/TestProj/trunk/example2.php');
);
try {
}
?>
Example 2: <?php
require_once 'VersionControl/SVN.php';
// Set up runtime options. Will be passed to all
// subclasses.
$switches = array('r' => '5:8');
$args = array('svn://svn.example.com/repos/TestProj/trunk/example.php');
try {
}
?>
Example 3: <?php
require_once 'VersionControl/SVN.php';
// Set up runtime options. Will be passed to all
// subclasses.
$switches = array('r' => '5:8');
$args = array('svn://svn.example.com/repos/TestProj/trunk/example.php',
'svn://svn.example.com/repos/TestProj/trunk/example2.php');
try {
}
?>
$switches is an array containing one or more command line options defined by the following associative keys:
$switches = array(
'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
'old' => 'OLD-TARGET',
// use OLD-TARGET as the older target
'new' => 'NEW-TARGET',
// use NEW-TARGET as the newer target
'x [extensions]'=> 'ARG',
// pass ARG as bundled options to GNU diff
// either 'x' or 'extensions' may be used
'N' => true|false,
// operate on single directory only
'non-recursive' => true|false,
// operate on single directory only
'diff-cmd' => 'ARG',
// use ARG as diff command
'no-diff-deleted' => true|false,
// do not print differences for deleted files
'notice-ancestry' => true|false,
// notice ancestry when calculating differences
'username' => 'Subversion repository login
',
'no-auth-cache' => true|false,
// Do not cache authentication tokens
'config-
dir' => 'Path to a Subversion configuration directory
',
'changelist => 'Changelist to operate on'
);
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.