NAME

Gitalist::Git::Project - Model of a git repository

SYNOPSIS

    my $gitrepo = dir('/repo/base/Gitalist');
    my $project = Gitalist::Git::Project->new($gitrepo);
     $project->name;        # 'Gitalist'
     $project->path;        # '/repo/base/Gitalist/.git'
     $project->description; # 'Unnamed repository.'

DESCRIPTION

This class models a git repository, referred to in Gitalist as a "Project".

ATTRIBUTES

name

The name of the Project. By default, this is derived from the path to the git repository.

path

Path::Class:Dir for the location of the git repository.

description

String containing .git/description

owner

Owner of the files on disk.

last_change

DateTime for the time of the last update. undef if the repository has never been used.

is_bare

Bool indicating whether this Project is bare.

heads

ArrayRef of hashes containing the name and sha1 of all heads.

tags

ArrayRef of hashes containing the name and sha1 of all tags.

references

Hashref of ArrayRefs for each reference.

METHODS

head_hash ($head?)

Return the sha1 for HEAD, or any specified head.

list_tree ($sha1?)

Return an array of contents for a given tree. The tree is specified by sha1, and defaults to HEAD. Each item is a Gitalist::Git::Object.

get_object ($sha1)

Return an appropriate subclass of Gitalist::Git::Object for the given sha1.

hash_by_path($sha1, $path, $type?)

Returns the sha1 for a given path, optionally limited by type.

list_revs($sha1, $count?, $skip?, \%search?, $file?)

Returns a list of revs for the given head ($sha1).

snapshot($sha1, $format)

Generate an archived snapshot of the repository. $sha1 should be a commit or tree. Returns a filehandle to read from.

diff($commit, $patch?, $parent?, $file?)

Generate a diff from a given Gitalist::Git::Object.

reflog(@lorgargs)

Return a list of hashes representing each reflog entry.

FIXME Should this return objects?

SEE ALSO

Gitalist::Git::Util Gitalist::Git::Object

AUTHORS

See Gitalist for authors.

LICENSE

See Gitalist for the license.