File: Reflog.pm

package info (click to toggle)
libgit-raw-perl 0.87%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,464 kB
  • sloc: perl: 5,404; ansic: 182; makefile: 6
file content (112 lines) | stat: -rw-r--r-- 2,661 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package Git::Raw::Reflog;
$Git::Raw::Reflog::VERSION = '0.87';
use strict;
use warnings;

=head1 NAME

Git::Raw::Reflog - Git reflog class

=head1 VERSION

version 0.87

=head1 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;

=head1 DESCRIPTION

A C<Git::Raw::Reflog> represents a Git reflog.

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

=head1 METHODS

=head2 open( $reference )

Open the reflog for the reference C<$reference>.

=head2 delete( )

Delete the reflog for the reference.

=head2 append( $message [, $signature])

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

=head2 drop( $index )

Remove entry C<$index> from the reflog.

=head2 write( )

Write the reflog back to disk.

=head2 entry_count( )

Retrieve the number of entries in the reflog.

=head2 entries( [$index, $count] )

Retrieve a list of L<Git::Raw::Reflog::Entry> objects.

=head1 AUTHOR

Alessandro Ghedini <alexbio@cpan.org>

Jacques Germishuys <jacquesg@striata.com>

=head1 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.

=cut

1; # End of Git::Raw::Reflog