---
name: "Git::Raw::Odb"
section: "3pm"
platform: "linux"
package: "libgit-raw-perl"
version: "0.90+ds-3+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Git::Raw::Odb"
---

# Git::Raw::Odb(3pm)

Git object database class

## NAME

Git::Raw::Odb - Git object database class

## VERSION

version 0.90

## 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@cpan.org\>

## 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.
