diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2021-09-04 10:16:41 -0400 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2021-09-04 13:00:18 -0400 |
commit | a24e656a4e6278157d2aec885e0d300f47f74938 (patch) | |
tree | 793b046f71667ccb448c2138402c1be9afbb77b6 /include | |
parent | 2f3074da512624c9522683f9aa6bca6642a3e4f7 (diff) | |
download | libgit2-a24e656a4e6278157d2aec885e0d300f47f74938.tar.gz |
common: support custom repository extensionsethomson/extensions
Allow users to specify additional repository extensions that they want
to support. For example, callers can specify that they support
`preciousObjects` and then may open repositories that support
`extensions.preciousObjects`.
Similarly, callers may opt out of supporting extensions that the library
itself supports.
Diffstat (limited to 'include')
-rw-r--r-- | include/git2/common.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/git2/common.h b/include/git2/common.h index d278c01b6..2ee829025 100644 --- a/include/git2/common.h +++ b/include/git2/common.h @@ -209,7 +209,9 @@ typedef enum { GIT_OPT_GET_MWINDOW_FILE_LIMIT, GIT_OPT_SET_MWINDOW_FILE_LIMIT, GIT_OPT_SET_ODB_PACKED_PRIORITY, - GIT_OPT_SET_ODB_LOOSE_PRIORITY + GIT_OPT_SET_ODB_LOOSE_PRIORITY, + GIT_OPT_GET_EXTENSIONS, + GIT_OPT_SET_EXTENSIONS } git_libgit2_opt_t; /** @@ -431,6 +433,22 @@ typedef enum { * > Override the default priority of the loose ODB backend which * > is added when default backends are assigned to a repository * + * opts(GIT_OPT_GET_EXTENSIONS, git_strarray *out) + * > Returns the list of git extensions that are supported. This + * > is the list of built-in extensions supported by libgit2 and + * > custom extensions that have been added with + * > `GIT_OPT_SET_EXTENSIONS`. Extensions that have been negated + * > will not be returned. The returned list should be released + * > with `git_strarray_dispose`. + * + * opts(GIT_OPT_SET_EXTENSIONS, const char **extensions, size_t len) + * > Set that the given git extensions are supported by the caller. + * > Extensions supported by libgit2 may be negated by prefixing + * > them with a `!`. For example: setting extensions to + * > { "!noop", "newext" } indicates that the caller does not want + * > to support repositories with the `noop` extension but does want + * > to support repositories with the `newext` extension. + * * @param option Option key * @param ... value to set the option * @return 0 on success, <0 on failure |