NAME
VCI::VCS::Git - Object-oriented interface to Git
SYNOPSIS
use VCI;
my $repository = VCI->connect(type => 'Git', repo => 'path/above/clone/');
DESCRIPTION
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.
CONNECTING TO A GIT REPOSITORY
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/
.
REVISION IDENTIFIERS
Commit, File, and Directory objects use the full sha1 id of the Commit (not the abbreviated sha1 hash) as their identifier.
TAINT SAFETY
VCI::VCS::Git
is not yet safe to use in taint mode. It currently uses Git.pm
, which is not itself taint-safe.
LIMITATIONS AND EXTENSIONS
These are limitations of VCI::VCS::Git compared to the general API specified in the VCI::Abstract
modules.
VCI::VCS::Git
You can only connect
to a local repository. Remote repositories are not supported.
VCI::VCS::Repository
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.
VCI::VCS::Directory
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.)
PERFORMANCE
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).
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.