summaryrefslogtreecommitdiff
path: root/file/git-util.h
diff options
context:
space:
mode:
authorWerner Almesberger <werner@almesberger.net>2016-10-29 17:08:02 -0300
committerWerner Almesberger <werner@almesberger.net>2016-10-29 17:16:19 -0300
commit7bea1c432cbc60844eca08c044f559b4411f8887 (patch)
treefd77371f087ec0e9f22cd2325cb571c38528d4c8 /file/git-util.h
parentda077cfcc19b21ebc994e6d1fb5ab85c99f9cc72 (diff)
downloadeeshow-7bea1c432cbc60844eca08c044f559b4411f8887.tar.gz
eeshow-7bea1c432cbc60844eca08c044f559b4411f8887.tar.bz2
eeshow-7bea1c432cbc60844eca08c044f559b4411f8887.zip
file/: implement caching version of git_repository_open_ext for libgit2 < 0.22
In version 0.22, this was added: Share open packfiles across repositories to share descriptors and mmaps Unfortunately, some people are unable to upgrade to modern libraries. Without FD sharing, eeshow may run out of file descriptors when loading large repositories. This commit adds a cache to reduce the number of times a repository is opened, which may in turn reduce the number of open files.
Diffstat (limited to 'file/git-util.h')
-rw-r--r--file/git-util.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/file/git-util.h b/file/git-util.h
index 4c7e329..6f11573 100644
--- a/file/git-util.h
+++ b/file/git-util.h
@@ -18,6 +18,9 @@
#include <git2.h>
+int git_repository_open_ext_caching(git_repository **out, const char *path,
+ unsigned int flags, const char *ceiling_dirs);
+
bool git_repo_is_dirty(git_repository *repo);
void git_init_once(void);