.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Git::Raw::Packbuilder 3pm" .TH Git::Raw::Packbuilder 3pm "2019-01-12" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Git::Raw::Packbuilder \- Git packbuilder class .SH "VERSION" .IX Header "VERSION" version 0.79 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use File::Spec::Functions qw(catfile); \& use Git::Raw; \& \& my $pb = Git::Raw::Packbuilder \-> new($repo); \& $pb \-> insert($commit); \& $pb \-> write(catfile($repo \-> path, \*(Aqobjects\*(Aq, \*(Aqpack\*(Aq)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A Git::Raw::Packbuilder represents a git packfile builder. .SH "CONSTANTS" .IX Header "CONSTANTS" .SS "\s-1ADDING_OBJECTS\s0" .IX Subsection "ADDING_OBJECTS" Objects are being added to the object database. .SS "\s-1DELTAFICATION\s0" .IX Subsection "DELTAFICATION" Deltas are calculated/resolved. .SH "METHODS" .IX Header "METHODS" .ie n .SS "new( $repo )" .el .SS "new( \f(CW$repo\fP )" .IX Subsection "new( $repo )" Create a new packbuilder. .ie n .SS "insert( $object, [$recursive = 1] )" .el .SS "insert( \f(CW$object\fP, [$recursive = 1] )" .IX Subsection "insert( $object, [$recursive = 1] )" Insert an object and by default its referenced objects. \f(CW$object\fR may be a Git::Raw::Commit, Git::Raw::Tree, Git::Raw::Blob or Git::Raw::Walker. .ie n .SS "write( $path )" .el .SS "write( \f(CW$path\fP )" .IX Subsection "write( $path )" Write the new pack and corresponding index file to \f(CW$path\fR. .SS "written( )" .IX Subsection "written( )" Retrieve the number of objects the packbuilder has already written out. .SS "object_count( )" .IX Subsection "object_count( )" Retrieve the total number of objects the packbuilder will write out. .ie n .SS "threads( $count )" .el .SS "threads( \f(CW$count\fP )" .IX Subsection "threads( $count )" Set number of threads to spawn. By default libgit2 won't spawn any threads at all; when set to 0, libgit2 will autodetect the number of CPUs. .SS "hash( )" .IX Subsection "hash( )" Get the packfile's hash. A packfile's name is derived from the sorted hashing of all object names. This is only correct after the packfile has been written. .SS "callbacks( \e%callbacks )" .IX Subsection "callbacks( %callbacks )" Set the callbacks for the packbuilder. See \f(CW\*(C`CALLBACKS\*(C'\fR. .SH "CALLBACKS" .IX Header "CALLBACKS" .SS "pack_progress" .IX Subsection "pack_progress" During the packing of new data, this will regularly be called with the progress of the pack operation. Be aware that this is called inline with pack building operations, so performance may be affected. The callback receives the following integers: \&\f(CW$stage\fR, \f(CW$current\fR and \f(CW$total\fR. .SS "transfer_progress" .IX Subsection "transfer_progress" This will be regularly called with the current count of progress done by the indexer. The callback receives the following integers: \f(CW$total_objects\fR, \&\f(CW$received_objects\fR, \f(CW$local_objects\fR, \f(CW$total_deltas\fR, \f(CW$indexed_deltas\fR and \f(CW$received_bytes\fR. .SH "AUTHOR" .IX Header "AUTHOR" Jacques Germishuys .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2015 Jacques Germishuys. .PP This program is free software; you can redistribute it and/or modify it under the terms of either: the \s-1GNU\s0 General Public License as published by the Free Software Foundation; or the Artistic License. .PP See http://dev.perl.org/licenses/ for more information.