NAME

Git::Raw::Reflog - Git reflog class

VERSION

version 0.34

SYNOPSIS

use Git::Raw;

# open the Git repository at $path
my $repo = Git::Raw::Repository -> open($path);

# get the master branch
my $master = Git::Raw::Branch -> lookup($repo, 'master', 1);

# retrieve the reflog for 'master'
my $reflog = $master -> reflog;

# print out reflog information
my @entries = $reflog -> entries;
foreach my $entry (@entries) {
    my $committer = $entry -> committer;
    print "Committer:", "\n";
    print "\t", "Name:   ", $committer -> name, "\n";
    print "\t", "E-Mail  ", $committer -> email, "\n";
    print "\t", "Time:   ", $committer -> time, "\n";
    print "\t", "Offset: ", $committer -> offset, "\n";
    print "\n";

    print "Message: ", $entry -> message, "\n";
    print "Old id:  ", $entry -> old_id, "\n";
    print "New id:  ", $entry -> new_id, "\n";
}

# add a new entry to the reflog
my $signature = Git::Raw::Signature -> default($repo);
$reflog -> append("Hello", $signature);
$reflog -> write;

# drop an entry from the reflog
$reflog -> drop(0);
$reflog -> write;

# remove the reflog
$reflog -> delete;
$reflog -> write;

DESCRIPTION

A Git::Raw::Reflog represents a Git reflog.

WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

METHODS

open( $reference )

Open the reflog for the reference $reference.

delete( )

Delete the reflog for the reference.

append( $message [, $signature])

Add a new entry to the reflog. If $signature is not provided, the default signature, Git::Raw::Signature->default() will be used.

drop( $index )

Remove entry $index from the reflog.

write( )

Write the reflog back to disk.

entries( )

Retrieve a list of reflog entries. Each entry is a hash with the following members:

  • "committer"

    The committer of the entry, a Git::Raw::Signature object.

  • "message"

    The message for the entry.

  • "new_id"

    The new "OID" for the entry.

  • "old_id"

    The old "OID" for the entry.

AUTHOR

Alessandro Ghedini <alexbio@cpan.org>

LICENSE AND COPYRIGHT

Copyright 2014 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.