NAME
Git::Raw::Walker - Git revwalker class
VERSION
version 0.90
SYNOPSIS
use Git::Raw;
# open the Git repository at $path
my $repo = Git::Raw::Repository -> open($path);
# create a new walker
my $log = $repo -> walker;
# push the head of the repository
$log -> push_head;
# print all commit messages
while (my $commit = $log -> next) {
say $commit -> message;
}
DESCRIPTION
A Git::Raw::Walker represents a graph walker used to walk through the repository's revisions (sort of like git log
).
WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).
METHODS
create( $repo )
Create a new revision walker.
sorting( \@order )
Change the sorting mode when iterating through the repository's contents. Values for @order
may be one or more of the following:
"none"
Sort the repository contents in no particular ordering, that is, sorting is arbitrary, implementation-specific and subject to change at any time. (Default)
"topological"
Sort the repository contents in topological order (parents before children). This sorting mode may be combined with time sorting.
"time"
Sort the repository contents by commit time. This sorting mode may be combined with topological sorting.
"reverse"
Iterate through the repository contents in reverse order. This sorting mode may be combined with any of the above.
push( $commit )
Push a Git::Raw::Commit to the list of commits to be used as roots when starting a revision walk.
push_glob( $glob )
Push references by $glob
to the list of commits to be used as roots when starting a revision walk.
push_ref( $name )
Push a reference by $name
to the list of commits to be used as roots when starting a revision walk.
push_head( )
Push HEAD of the repository to the list of commits to be used as roots when starting a revision walk.
push_range( $start, $end )
Push and hide the respective endpoints of the given range. $start
and $end
should be "commitish"
, that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix.
push_range( $range )
Push and hide the respective endpoints of the given range. $range
should be of the form "start_commit_id..end_commit_id"
.
hide( $commit )
Hide a Git::Raw::Commit and its ancestors from the walker.
hide_glob( $glob )
Hide references by $glob
and all ancestors from the walker.
hide_ref( $name )
Hide a reference by $name
and its ancestors from the walker.
hide_head( )
Hide HEAD of the repository and its ancestors from the walker.
next( )
Retrieve the next commit from the revision walk. Returns a Git::Raw::Commit object or undef
if there are no commits.
all( )
Retrieve all commits. Returns a list of Git::Raw::Commit objects.
reset( )
Reset the revision walker (this is done automatically at the end of a walk).
AUTHOR
Alessandro Ghedini <alexbio@cpan.org>
LICENSE AND COPYRIGHT
Copyright 2012 Alessandro Ghedini.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.