Git::Repository::Log::Iterator - Split a git log stream into records
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 ) { ...; }
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.
Git::Repository::Log::Iterator
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.
@args
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).
new()
--pretty=raw
--pretty
format.pretty
--color=never
Extra output (like patches) will be stored in the extra parameter of the Git::Repository::Log object. Decorations will be lost.
extra
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.
croak()
run( 'log' => ... )
The object is really a blessed hash reference, with only two keys:
The Git::Repository::Command object running the actual git log command. It might not be defined in some cases (see below "new_from_fh" and "new_from_file").
The filehandle from which the output of git log is actually read. This is the only attribute needed to run the "next" method.
This constructor makes it possible to provide the filehandle directly.
The cmd key is not defined when using this constructor.
cmd
This constructor makes it possible to provide a filename that will be open()ed to produce a filehandle to read the log stream from.
open()
my $log = $iter->next;
Return the next log item as a Git::Repository::Log object, or nothing if the stream has ended.
Copyright 2010-2016 Philippe Bruhat (BooK), all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Git::Repository::Plugin::Log, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Git::Repository::Plugin::Log
CPAN shell
perl -MCPAN -e shell install Git::Repository::Plugin::Log
For more information on module installation, please visit the detailed CPAN module installation guide.