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

Note that the libgit2 library must be initialized using git_libgit2_init before any APIs can be called, including this one.

Signature

int git_repository_discover(git_buf *out, const char *start_path, int across_fs, const char *ceiling_dirs);

Parameters

In
out

A pointer to a user-allocated git_buf which will contain the found path.

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