NAME
VCI::VCS::Git - The Git Implementation of VCI
DESCRIPTION
This is a "driver" for VCI for the Git version-control system. You can find out more about Git at http://git.or.cz/.
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.
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 in 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 small to medium-sized repositories (under 1000 commits and with under 1000 files).
SEE ALSO
BUGS
VCI::VCS::Git is very new, and may have significant bugs. The code is alpha-quality at this point.
AUTHOR
Max Kanat-Alexander <mkanat@cpan.org>
COPYRIGHT AND LICENSE
Copyright 2007 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.