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

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.