| VCI documentation | Contained in the VCI distribution. |
VCI::VCS::Git - Object-oriented interface to Git
use VCI; my $repository = VCI->connect(type => 'Git', repo => 'path/above/clone/');
This is a "driver" for VCI for the Git version-control system. You can find out more about Git at http://git-scm.com/.
For information on how to use VCI::VCS::Git, see VCI.
Due to the design of Git, VCI::VCS::Git is limited to interacting with local repositories. Limited interaction with remote repositories may be possible in the future, depending on what is desired from VCI users.
For the repo argument to connect in VCI, choose the directory
above where your projects are kept. For example, if you have a project
whose path is /var/git/project, then the repo would be /var/git/.
Commit, File, and Directory objects use the full sha1 id of the Commit (not the abbreviated sha1 hash) as their identifier.
VCI::VCS::Git is not yet safe to use in taint mode. It currently
uses Git.pm, which is not itself taint-safe.
These are limitations of VCI::VCS::Git compared to the general API specified
in the VCI::Abstract modules.
You can only connect to a local repository. Remote repositories are not
supported.
projects generates the list of projects by finding all directories in the
repository that have .git directories in them (or directories that are
a "bare" repository). So if there are projects further down in the
directory hierarchy, they won't be found.
Calling first_revision or last_revision on a Directory will fail,
as Directories are not tracked in any History. (This may be fixed in a
future version.)
Git itself is extremely fast, but many optimizations have not yet been implemented in VCI itself. However, VCI::VCS::Git should still be fairly fast on all operations for medium-sized repositories (under 10000 commits and with under 10000 files).
Max Kanat-Alexander <mkanat@cpan.org>
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.
| VCI documentation | Contained in the VCI distribution. |
package VCI::VCS::Git; use Moose; our $VERSION = '0.7.1'; # Assure that we die immediately upon use if somebody tries to use us # without the proper prerequisite installed. use Git; extends 'VCI'; __PACKAGE__->meta->make_immutable; 1; __END__