File: Mempack.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 (72 lines) | stat: -rw-r--r-- 1,527 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
package Git::Raw::Mempack;
$Git::Raw::Mempack::VERSION = '0.87';
use strict;
use warnings;

use Git::Raw;

=head1 NAME

Git::Raw::Mempack - Git in-memory object database class

=head1 VERSION

version 0.87

=head1 SYNOPSIS

	use Git::Raw;

	my $mempack = Git::Raw::Mempack -> new;
	my $odb = $repo -> odb;
	$odb -> add_backend($mempack, 99);

	# Create blobs, trees and commits...

	# Index the packfile and persist
	my $odb_path = catfile($repo -> path, 'objects');
	my $tp = Git::Raw::TransferProgress -> new;
	my $indexer = Git::Raw::Indexer -> new($odb_path, $odb);

	my $pack = $mempack -> dump($repo);
	$indexer -> append($pack, $tp);
	$indexer -> commit($tp);


=head1 DESCRIPTION

A L<Git::Raw::Mempack> represents a git in-memory object database.

=head1 METHODS

=head2 new( )

Create a new mempack backend.

=head2 dump( $repo )

Dump all the queued in-memory writes to a packfile. Returns the contents of the
packfile. It is the caller's responsibility to ensure that the generated
packfile is available to the repository.

=head2 reset( )

Reset the mempack by clearing all the queued objects.

=head1 AUTHOR

Jacques Germishuys <jacquesg@striata.com>

=head1 LICENSE AND COPYRIGHT

Copyright 2016 Jacques Germishuys.

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::Mempack