The power of a version control system like Subversion, when accessed through VersionControl_SVN, can be
extended far beyond typical "source code" repositories.
For example, what content management system (CMS) couldn't benefit from version control functionality?
For many non-programmers, version control is a confusing subject to get a firm grasp on. With VersionControl_SVN,
developers are now able to customize the interface to Subversion with the ease-of-use goals of their
particular audience in mind. VersionControl_SVN lets you leverage the strengths of version control without burdening
end-users with the learning curve of change control fundamentals.

A Simple Example

So you've got Subversion repository set up somewhere, and you want to take a look at what's
inside with a PHP script. With the VersionControl_SVN::VersionControl_SVN_List() command,
you're just a few steps away.

If your example repository above happened to have the VersionControl_SVN source in it,
your output would be something like this:

<?php

Array

(

[0] => Array

(

[name] => docs

[type] => D

)

[1] => Array

(

[name] => package.xml

[type] => F

)

[2] => Array

(

[name] => SVN.php

[type] => F

)

[3] => Array

(

[name] => SVN

[type] => D

)

[4] => Array

(

[name] => tests

[type] => D

)

)

?>

Note that in the above output, directories are flagged as type D, and
files are flagged as type F.

Note: For additional information in the output, try setting verbose to
true in your $options array.

One Factory To Rule Them All

Have a script that needs to utilize several VersionControl_SVN subclasses? At the expense of a little overhead, you
can be sure your $svn objects are fully-loaded by using the VersionControl_SVN::factory() command
keyword __ALL__.

For example, in a basic script to get the list of current files in a repository, you just need the VersionControl_SVN::VersionControl_SVN_List()
subclass.