diff options
author | Javi Fontan <jfontan@gmail.com> | 2018-08-30 20:28:40 +0200 |
---|---|---|
committer | Javi Fontan <jfontan@gmail.com> | 2018-09-04 12:41:31 +0200 |
commit | 6384ab93a2dbac9045ee19099455cbcfe82d0201 (patch) | |
tree | 66be7ef79ec1267306af9e5e4b9870dde54ef5db /storage/filesystem/storage.go | |
parent | 2f1583896bcc3c182d8165d6aeeb23c771cc5417 (diff) | |
download | go-git-6384ab93a2dbac9045ee19099455cbcfe82d0201.tar.gz |
storage/dotgit: add KeepDescriptors option
This option maintains packfile file descriptors opened after reading
objects from them. It improves performance as it does not have to be
opening packfiles each time an object is needed.
Also adds Close to EncodedObjectStorer to close all the files manualy.
Signed-off-by: Javi Fontan <jfontan@gmail.com>
Diffstat (limited to 'storage/filesystem/storage.go')
-rw-r--r-- | storage/filesystem/storage.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/storage/filesystem/storage.go b/storage/filesystem/storage.go index 25b3653..7fae789 100644 --- a/storage/filesystem/storage.go +++ b/storage/filesystem/storage.go @@ -27,6 +27,9 @@ type Options struct { // ExclusiveAccess means that the filesystem is not modified externally // while the repo is open. ExclusiveAccess bool + // KeepDescriptors makes the file descriptors to be reused but they will + // need to be manually closed calling Close(). + KeepDescriptors bool } // NewStorage returns a new Storage backed by a given `fs.Filesystem` @@ -41,6 +44,7 @@ func NewStorageWithOptions( ) (*Storage, error) { dirOps := dotgit.Options{ ExclusiveAccess: ops.ExclusiveAccess, + KeepDescriptors: ops.KeepDescriptors, } dir := dotgit.NewWithOptions(fs, dirOps) |