libgit2

git_repository_discover

Version:

Look for a git repository and copy its path in the given buffer. The lookup start from base_path and walk across parent directories if nothing has been found. The lookup ends when the first repository is found, or when reaching a directory referenced in ceiling_dirs or when the filesystem changes (in case across_fs is true).

The method will automatically detect if the repository is bare (if there is a repository).

Signature

int git_repository_discover(char *path_out, size_t path_size, const char *start_path, int across_fs, const char *ceiling_dirs);

Parameters

char *
In
path_out

The user allocated buffer which will contain the found path.

size_t
In
path_size

repository_path size

const char *
In
start_path

The base path where the lookup starts.

int
In
across_fs

If true, then the lookup will not stop when a filesystem device change is detected while exploring parent directories.

const char *
In
ceiling_dirs

A GIT_PATH_LIST_SEPARATOR separated list of absolute symbolic link free paths. The lookup will stop when any of this paths is reached. Note that the lookup always performs on start_path no matter start_path appears in ceiling_dirs ceiling_dirs might be NULL (which is equivalent to an empty string)

Returns

int

0 or an error code

Versions