NAME
VCI::VCS::Bzr - Object-oriented interface to Bazaar (bzr)
SYNOPSIS
use VCI;
my $repository = VCI->connect(type => 'Bzr',
repo => 'bzr://bzr.example.com/');
DESCRIPTION
This is a "driver" for VCI for the Bazaar version-control system. You can find out more about Bazaar at http://bazaar.canonical.com/.
For information on how to use VCI::VCS::Bzr, see VCI.
CONNECTING TO A BZR REPOSITORY
For the repo argument to "connect" in VCI, choose the directory above where your branches are kept. For example, if I have a branch http://bzr.domain.com/bzr/branch
, then the repo
would be http://bzr.domain.com/bzr/
.
Bzr's connect
also takes one optional extra argument:
x_bzr
-
The path to the
bzr
binary on your system. If not specified, we will search yourPATH
and throw an error ifbzr
isn't found.Taint Mode: VCI will throw an error if this argument is tainted, because VCI just runs this command blindly, and we wouldn't want to run something like
delete_everything_on_this_computer.sh
.
REQUIREMENTS
VCI::VCS::Bzr requires that the following be installed on your system:
- bzr
-
bzr
Must be installed and accessible to VCI. If it's not in your path, you should specify anx_bzr
argument to "connect" in VCI, which should contain the full path to thebzr
executable, such as /usr/bin/bzr. - bzrtools
-
The
bzrtools
extension package must be installed. Usually this is available as a package (RPM or deb) in your distrubution, or you can download it from here: http://launchpad.net/bzrtools. - bzr-xmloutput
-
Because VCI::VCS::Bzr processes the output of bzr, it needs it in a machine-readable format like XML. For bzr, this is accomplished by the
bzr-xmloutput
plugin, which is available here: http://launchpad.net/bzr-xmloutput.You can read about how to install it at http://doc.bazaar.canonical.com/plugins/en/plugin-installation.html.
This is in addition to any perl module requirements listed when you install VCI::VCS::Bzr.
LIMITATIONS AND EXTENSIONS
These are limitations of VCI::VCS::Bzr compared to the general API specified in the VCI::Abstract
modules.
VCI::VCS::Bzr::Repository
projects
-
On some repositories, "projects" will return an empty array, even though there are branches there. This only happens for repositories where we can't list the directories. For example, HTTP repositories without a directory listing.
However, get_project will still work on those repositories.
VCI::VCS::Bzr::Directory
When constructing a Directory, you cannot specify time
or revision
without also specifying contents
. VCI::VCS::Bzr itself never does this, so you generally don't have to worry about this unless you're building your own objects for some reason.
PERFORMANCE
With local repositories, VCI::VCS::Bzr should be very fast. With remote repositories, certain operations may be slow, such as calling projects
on a Repository.
SEE ALSO
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.