Module git_odb::alternate

source ·
Expand description

A file with directories of other git object databases to use when reading objects.

This inherently makes alternates read-only.

An alternate file in <git-dir>/info/alternates can look as follows:

# a comment, empty lines are also allowed
# relative paths resolve relative to the parent git repository
../path/relative/to/repo/.git
/absolute/path/to/repo/.git

"/a/ansi-c-quoted/path/with/tabs\t/.git"

# each .git directory should indeed be a directory, and not a file

Based on the canonical implementation.

Modules

Enums

Returned by resolve()

Functions

Given an objects_directory, try to resolve alternate object directories possibly located in the ./info/alternates file into canonical paths and resolve relative paths with the help of the current_dir. If no alternate object database was resolved, the resulting Vec is empty (it is not an error if there are no alternates). It is an error once a repository is seen again as it would lead to a cycle.