Git::Repository::Log::Iterator(3) | User Contributed Perl Documentation | Git::Repository::Log::Iterator(3) |
NAME¶
Git::Repository::Log::Iterator - Split a git log stream into records
SYNOPSIS¶
use Git::Repository::Log::Iterator; # use a default Git::Repository context my $iter = Git::Repository::Log::Iterator->new('HEAD~10..'); # or provide an existing instance my $iter = Git::Repository::Log::Iterator->new( $r, 'HEAD~10..' ); # get the next log record while ( my $log = $iter->next ) { ...; }
DESCRIPTION¶
"Git::Repository::Log::Iterator" initiates a git log command from a list of paramaters and parses its output to produce Git::Repository::Log objects represening each log item.
METHODS¶
new¶
my $iter = Git::Repository::Log::Iterator->new( @args );
Create a new git log stream from the parameter list in @args and return a iterator on it.
new() will happily accept any parameters, but note that "Git::Repository::Log::Iterator" expects the output to look like that of "--pretty=raw", and so will force the the "--pretty" option (in case "format.pretty" is defined in the Git configuration). It will also forcibly remove colored output (using "--color=never").
Extra output (like patches) will be stored in the "extra" parameter of the Git::Repository::Log object. Decorations will be lost.
When unsupported options are recognized in the parameter list, new() will croak() with a message advising to use "run( 'log' => ... )" to parse the output yourself.
The object is really a blessed hash reference, with only two keys:
new_from_fh¶
This constructor makes it possible to provide the filehandle directly.
The "cmd" key is not defined when using this constructor.
new_from_file¶
This constructor makes it possible to provide a filename that will be open()ed to produce a filehandle to read the log stream from.
The "cmd" key is not defined when using this constructor.
next¶
my $log = $iter->next;
Return the next log item as a Git::Repository::Log object, or nothing if the stream has ended.
COPYRIGHT¶
Copyright 2010-2016 Philippe Bruhat (BooK), all rights reserved.
LICENSE¶
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2016-06-12 | perl v5.40.0 |