- CONNECTING TO A GIT REPOSITORY
- REVISION IDENTIFIERS
- TAINT SAFETY
- LIMITATIONS AND EXTENSIONS
- SEE ALSO
- COPYRIGHT AND LICENSE
VCI::VCS::Git - Object-oriented interface to Git
use VCI; my $repository = VCI->connect(type => 'Git', repo => 'path/above/clone/');
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
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.
LIMITATIONS AND EXTENSIONS
These are limitations of VCI::VCS::Git compared to the general API specified in the
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.
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 <email@example.com>
COPYRIGHT AND LICENSE
Copyright 2007-2010 by Everything Solved, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.