aboutsummaryrefslogtreecommitdiffstats
path: root/storage/filesystem/storage.go
Commit message (Collapse)AuthorAgeFilesLines
* plumbing: format/packfile, prevent large objects from being read into memory ↵zeripath2021-06-301-0/+3
| | | | | | | | | | | | | | | completely (#330) This PR adds code to prevent large objects from being read into memory from packfiles or the filesystem. Objects greater than 1Mb are now no longer directly stored in the cache or read completely into memory. This PR differs and improves the previous broken #323 by fixing several bugs in the reader and transparently wrapping ReaderAt as a Reader. Signed-off-by: Andrew Thornton <art27@cantab.net>
* *: migration from gopkg to go modulesMáximo Cuadros2020-03-101-3/+3
|
* filesystem: ObjectStorage, MaxOpenDescriptors optionArran Walker2019-04-221-1/+3
| | | | | | | | The MaxOpenDescriptors option provides a middle ground solution between keeping all packfiles open (as offered by the KeepDescriptors option) and keeping none open. Signed-off-by: Arran Walker <arran.walker@fiveturns.org>
* plumbing: format/packfile, performance optimizations for reading large ↵Filip Navara2018-11-281-5/+1
| | | | | | commit histories (#963) Signed-off-by: Filip Navara <navara@emclient.com>
* Expose Storage cache.kuba--2018-09-071-15/+14
| | | | Signed-off-by: kuba-- <kuba@sourced.tech>
* storage/dotgit: add KeepDescriptors optionJavi Fontan2018-09-041-0/+4
| | | | | | | | | | 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>
* storage/filesystem: move Options to filesytem and dotgitJavi Fontan2018-09-031-10/+17
| | | | Signed-off-by: Javi Fontan <jfontan@gmail.com>
* storage/filesystem: make Storage options privateJavi Fontan2018-09-031-2/+2
| | | | Signed-off-by: Javi Fontan <jfontan@gmail.com>
* git, storer: use a common storer.Options for storer and PlainOpenJavi Fontan2018-08-301-17/+8
| | | | Signed-off-by: Javi Fontan <jfontan@gmail.com>
* git: add Static option to PlainOpenJavi Fontan2018-08-301-3/+24
| | | | | | | | | | | | | | | | Also adds Static configuration to Storage and DotGit. This option means that the git repository is not expected to be modified while open and enables some optimizations. Each time a file is accessed the storer tries to open an object file for the requested hash. When this is done for a lot of objects it is expensive. With Static option a list of object files is generated the first time an object is accessed and used to check if exists instead of using system calls. A similar optimization is done for packfiles. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* storage: filesystem, make ObjectStorage constructor publicMiguel Molina2018-06-081-1/+1
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* dotgit: Move package outside internal.Antonio Jesus Navarro Perez2018-06-051-1/+1
| | | | Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
* update to go-billy.v4 and go-git-fixtures.v3Máximo Cuadros2017-11-231-1/+1
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-181-1/+1
|
* fix gofmtSantiago M. Mola2017-06-131-2/+2
|
* storage/filesystem: call initialization explicitely, fixes #408Santiago M. Mola2017-06-011-4/+6
| | | | | | | | | | | | | filesystem.Storage was initializing the gitdir (creating objects and refs) on NewStorage. But this should be done only on init and clone operations, not on open. Now there is a new interface storer.Initializer that storers can implement if they need any initialization step before init or clone. filesystem.Storage is one of such implementations. git.Init and git.Clone now call to the storer Init() method if it does implement it. Otherwise, it just ignores initialization.
* storage: filesystem, initialize the default folder scaffoldingMáximo Cuadros2017-05-211-0/+4
|
* use go-billy.v2 versionAntonio Jesus Navarro Perez2017-03-101-1/+1
|
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-071-2/+2
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* Repository.Init now handles non-standard .git locationMáximo Cuadros2017-02-131-0/+9
|
* storage: git.Storer move to storage.Storer and module handlingMáximo Cuadros2017-02-121-0/+2
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-301-1/+1
|
* storage: IndexStorer implementationMáximo Cuadros2017-01-281-0/+2
|
* Extract billy (#173)Sergio Arbeo2016-12-191-2/+3
| | | | | | | | | | | | | | | * Extract billy Billy is a new library directly extracted from go-git. It abstract several storages systems in a filesystem interface. More in github.com/src-d/billy * Fix grouping in imports block * Update billy to v1 * Re-remove fs_implementation example
* storage: shallow storage (#180)Máximo Cuadros2016-12-151-0/+2
| | | | | | | | * storage: shallow storage * changes * changes
* global storage interface refactor (#112)Máximo Cuadros2016-11-071-31/+12
| | | | | | | | | | | * core: ObjectStorage, ReferenceStorage renamed to ObjectStorer and ReferenceStorer * rebase * general, changes request by @alcortes * general, changes request by @alcortes
* storage: filessytem read multiple packfiles support and index decodingMáximo Cuadros2016-09-091-8/+8
|
* storage: filesystem idx generation (wip)Máximo Cuadros2016-09-061-8/+4
|
* doc packagesMáximo Cuadros2016-09-011-0/+1
|
* storage/filesystem: ConfigStore implementationMáximo Cuadros2016-08-211-0/+11
|
* core: Storage, removing err returning *StoragesMáximo Cuadros2016-08-141-12/+8
|
* storage: Storage entity support, and DotGit support for ReferencesMáximo Cuadros2016-08-121-176/+19
|
* storage: seekable renamed to filesystemMáximo Cuadros2016-08-111-0/+203