summaryrefslogtreecommitdiff
path: root/include/git2/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/git2/common.h')
-rw-r--r--include/git2/common.h102
1 files changed, 94 insertions, 8 deletions
diff --git a/include/git2/common.h b/include/git2/common.h
index 0e9379804..5318e66b7 100644
--- a/include/git2/common.h
+++ b/include/git2/common.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2012 the libgit2 contributors
+ * Copyright (C) the libgit2 contributors. All rights reserved.
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
@@ -55,6 +55,10 @@
#define GIT_WIN32 1
#endif
+#ifdef __amigaos4__
+#include <netinet/in.h>
+#endif
+
/**
* @file git2/common.h
* @brief Git common platform definitions
@@ -81,13 +85,10 @@ GIT_BEGIN_DECL
*/
#define GIT_PATH_MAX 4096
-typedef struct {
- char **strings;
- size_t count;
-} git_strarray;
-
-GIT_EXTERN(void) git_strarray_free(git_strarray *array);
-GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src);
+/**
+ * The string representation of the null object ID.
+ */
+#define GIT_OID_HEX_ZERO "0000000000000000000000000000000000000000"
/**
* Return the version of the libgit2 library
@@ -99,6 +100,91 @@ GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src);
*/
GIT_EXTERN(void) git_libgit2_version(int *major, int *minor, int *rev);
+/**
+ * Combinations of these values describe the capabilities of libgit2.
+ */
+enum {
+ GIT_CAP_THREADS = ( 1 << 0 ),
+ GIT_CAP_HTTPS = ( 1 << 1 )
+};
+
+/**
+ * Query compile time options for libgit2.
+ *
+ * @return A combination of GIT_CAP_* values.
+ *
+ * - GIT_CAP_THREADS
+ * Libgit2 was compiled with thread support. Note that thread support is still to be seen as a
+ * 'work in progress'.
+ *
+ * - GIT_CAP_HTTPS
+ * Libgit2 supports the https:// protocol. This requires the open ssl library to be
+ * found when compiling libgit2.
+ */
+GIT_EXTERN(int) git_libgit2_capabilities(void);
+
+
+enum {
+ GIT_OPT_GET_MWINDOW_SIZE,
+ GIT_OPT_SET_MWINDOW_SIZE,
+ GIT_OPT_GET_MWINDOW_MAPPED_LIMIT,
+ GIT_OPT_SET_MWINDOW_MAPPED_LIMIT,
+ GIT_OPT_GET_SEARCH_PATH,
+ GIT_OPT_SET_SEARCH_PATH,
+ GIT_OPT_GET_ODB_CACHE_SIZE,
+ GIT_OPT_SET_ODB_CACHE_SIZE,
+};
+
+/**
+ * Set or query a library global option
+ *
+ * Available options:
+ *
+ * opts(GIT_OPT_GET_MWINDOW_SIZE, size_t *):
+ * Get the maximum mmap window size
+ *
+ * opts(GIT_OPT_SET_MWINDOW_SIZE, size_t):
+ * Set the maximum mmap window size
+ *
+ * opts(GIT_OPT_GET_MWINDOW_MAPPED_LIMIT, size_t *):
+ * Get the maximum memory that will be mapped in total by the library
+ *
+ * opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size_t):
+ * Set the maximum amount of memory that can be mapped at any time
+ * by the library
+ *
+ * opts(GIT_OPT_GET_SEARCH_PATH, int level, char *out, size_t len)
+ * Get the search path for a given level of config data. "level" must
+ * be one of GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL, or
+ * GIT_CONFIG_LEVEL_XDG. The search path is written to the `out`
+ * buffer up to size `len`. Returns GIT_EBUFS if buffer is too small.
+ *
+ * opts(GIT_OPT_SET_SEARCH_PATH, int level, const char *path)
+ * Set the search path for a level of config data. The search path
+ * applied to shared attributes and ignore files, too.
+ * - `path` lists directories delimited by GIT_PATH_LIST_SEPARATOR.
+ * Pass NULL to reset to the default (generally based on environment
+ * variables). Use magic path `$PATH` to include the old value
+ * of the path (if you want to prepend or append, for instance).
+ * - `level` must be GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL,
+ * or GIT_CONFIG_LEVEL_XDG.
+ *
+ * opts(GIT_OPT_GET_ODB_CACHE_SIZE):
+ * Get the size of the libgit2 odb cache.
+ *
+ * opts(GIT_OPT_SET_ODB_CACHE_SIZE):
+ * Set the size of the of the libgit2 odb cache. This needs
+ * to be done before git_repository_open is called, since
+ * git_repository_open initializes the odb layer. Defaults
+ * to 128.
+ *
+ * @param option Option key
+ * @param ... value to set the option
+ * @return 0 on success, <0 on failure
+ */
+GIT_EXTERN(int) git_libgit2_opts(int option, ...);
+
/** @} */
GIT_END_DECL
+
#endif