Skip to main content
The ObjectPoolService provides methods for managing object pools, which allow multiple repositories to share objects and save disk space.

CreateObjectPool

Creates an object pool from a repository. The client is responsible for linking repositories to this pool later.

Request

object_pool
ObjectPool
required
The object pool to create
origin
Repository
required
The source repository to create the pool from

Response

Empty response on success.

DeleteObjectPool

Removes the object pool directory from disk. The caller is responsible for unlinking all repositories from the pool before calling this RPC.

Request

object_pool
ObjectPool
required
The object pool to delete

Response

Empty response on success.

LinkRepositoryToObjectPool

Links a repository to an object pool. Repositories are assumed to be stored on the same disk.

Request

object_pool
ObjectPool
required
The object pool to link to
repository
Repository
required
The repository to link to the pool

Response

Empty response on success.

ReduplicateRepository

Reduplicates objects from an object pool back into a repository.

Request

repository
Repository
required
The repository to reduplicate objects into

Response

Empty response on success.

DisconnectGitAlternates

Disconnects a repository from its Git alternates (object pool).

Request

repository
Repository
required
The repository to disconnect from alternates

Response

Empty response on success.

FetchIntoObjectPool

Fetches objects from a repository into an object pool.

Request

origin
Repository
required
The source repository to fetch from
object_pool
ObjectPool
required
The object pool to fetch into
repack
bool
Whether to repack the object pool after fetching

Response

Empty response on success.

GetObjectPool

Retrieves the object pool linked to a repository.

Request

repository
Repository
required
The repository to get the object pool for

Response

object_pool
ObjectPool
The object pool linked to the repository, if any

Build docs developers (and LLMs) love