Max Kanat-Alexander > VCI > VCI::VCS::Svn

Download:
VCI-0.7.1.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.7.1   Source  

NAME ^

VCI::VCS::Svn - Object-oriented interface to Subversion

SYNOPSIS ^

 my $repository = VCI->connect(type => 'Svn',
                               repo => 'svn://svn.example.com/svn/');

DESCRIPTION ^

This is a "driver" for VCI for the Subversion version-control system. You can find out more about Subversion at http://subversion.apache.org/.

For information on how to use VCI::VCS::Svn, see VCI.

CONNECTING TO A SUBVERSION REPOSITORY ^

For the repo argument to "connect" in VCI, pass the same URL that you'd pass to your SVN client, without the actual branch name. That is, pass a URL to the very root of your repository.

For example, if I have a project called Foo that I store in svn.domain.com/svn/repo/Foo/trunk then the repo would be svn://svn.domain.com/svn/repo/.

Local Repositories

Though Subversion itself doesn't allow relative paths in file:// URLs, VCI::VCS::Svn does. So file://path/to/repo will be interpreted as meaning that you want the repo in the directory path/to/repo.

In actuality, VCI::VCS::Svn converts that to an absolute path when creating the Repository object, so using relative paths will fail if you are in an environment where "abs_path" in Cwd fails.

REQUIREMENTS ^

VCI::VCS::Svn requires at least Subversion 1.2, and the SVN::Client perl modules that ship with Subversion must be installed.

LIMITATIONS AND EXTENSIONS ^

The Subversion API requires that certain output be written to a real file on the filesystem. So, for certain operations (such as getting a diff or the contents of a file), we need to be able to write to the system's temporary directory.

Listed here are other limitations of VCI::VCS::Svn compared to the general API specified in the VCI::Abstract modules (or compared to how you might expect the driver to function):

VCI::VCS::Svn::Project

Svn supports "root_project".

VCI::VCS::Svn::Commit

PERFORMANCE ^

VCI::VCS::Svn performs well with both local and remote repositories, even when there are large numbers of revisions in the repository. We use the API directly in C (via SVN::Client), so there is no overhead of actually using the svn binary.

Some optimizations are not implemented yet, though, so certain operations may be slow, such as searching commits by time. This should be easy to rectify in a future version, particularly as I get some idea from users about how they most commonly use VCI.

SEE ALSO ^

VCI

AUTHOR ^

Max Kanat-Alexander <mkanat@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright 2007-2010 by Everything Solved, Inc.

http://www.everythingsolved.com

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: