NAME
Git::Raw::Odb - Git object database class
VERSION
version 0.79
DESCRIPTION
A Git::Raw::Odb represents a git object database.
WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).
METHODS
new( )
Create a new object database.
open( $directory )
Create a new object database and automatically add the two default backends. $directory
should be the path to the 'objects' directory.
backend_count( )
Get the number of ODB backend objects.
refresh( )
Refresh the object database to load newly added files. If the object databases have changed on disk while the library is running, this function will force a reload of the underlying indexes. Use this method when you're confident that an external application has tampered with the ODB.
foreach( $repo, $callback )
Run $callback
for every object available in the database. The callback receives a single argument, the OID of the object. A non-zero return value will terminate the loop.
add_backend( $backend, $priority )
Add a custom backend to the ODB. The backends are checked in relative ordering, based on the value of $priority
.
add_alternate( $backend, $priority )
Add an alternate custom backend to the ODB. Alternate backends are always checked for objects after all the main backends have been exhausted. Writing is disabled on alternate backends.
read( $id )
Read an object from the database. Returns a Git::Raw::Odb::Object or undef
if the object does not exist.
write( $data, type )
Write an object directly to the database. Returns the OID of the object. $type
should be one of the values as defines in the constants section of Git::Raw::Object.
hash( $data, $type )
Determine the object-ID (sha1 hash) of $data
. $type
should be one of the values as defined in the constants section of Git::Raw::Object.
AUTHOR
Jacques Germishuys <jacquesg@striata.com>
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.