aboutsummaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #501 from smola/config-multiple-urlsMáximo Cuadros2017-08-022-4/+4
|\ | | | | config: multiple values in RemoteConfig (URLs and Fetch)
| * config: multiple values in RemoteConfig (URLs and Fetch)Santiago M. Mola2017-08-012-4/+4
| | | | | | | | | | | | | | | | * Change `URL string` to `URL []string` in `RemoteConfig`, since git allows multiple URLs per remote. See: http://marc.info/?l=git&m=116231242118202&w=2 * Fix marshalling of multiple fetch refspecs.
* | Merge pull request #515 from smola/reuse-packed-objectsMáximo Cuadros2017-07-275-9/+179
|\ \ | |/ |/| storage: reuse deltas from packfiles
| * storage: reuse deltas from packfilesSantiago M. Mola2017-07-275-9/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * plumbing: add DeltaObject interface for EncodedObjects that are deltas and hold additional information about them, such as the hash of the base object. * plumbing/storer: add DeltaObjectStorer interface for object storers that can return DeltaObject. Note that calls to EncodedObject will never return instances of DeltaObject. That requires explicit calls to DeltaObject. * storage/filesystem: implement DeltaObjectStorer interface. * plumbing/packfile: packfile encoder now supports reusing deltas that are already computed (e.g. from an existing packfile) if the storage implements DeltaObjectStorer. Reusing deltas boosts performance of packfile generation (e.g. on push).
* | filesystem: reuse cache for packfile iteratorSantiago M. Mola2017-07-271-3/+4
|/
* plumbing/cache: change FIFO to LRU cacheSantiago M. Mola2017-07-271-1/+1
|
* storage/filesystem: reuse delta cacheSantiago M. Mola2017-07-271-1/+9
| | | | | Reuse delta base object cache for packfile decoders across multiple instances.
* packfile: create packfile.Index and reuse itSantiago M. Mola2017-07-262-45/+26
| | | | | | | | | | | | | | | There was an internal type (i.e. storage/filesystem.idx) to use as in-memory index for packfiles. This was not convenient to reuse in the packfile. This commit creates a new representation (format/packfile.Index) that can be converted to and from idxfile.Idxfile. A packfile.Index now contains the functionality that was scattered on storage/filesystem.idx and packfile.Decoder's internals. storage/filesystem now reuses packfile.Index instances and this also results in higher cache hit ratios when resolving deltas.
* Merge pull request #491 from smola/error-checksMáximo Cuadros2017-07-199-26/+96
|\ | | | | *: add more IO error checks
| * storage/filesystem: check all Close errorsSantiago M. Mola2017-07-195-24/+32
| |
| * test: add more PackfileWriter testsSantiago M. Mola2017-07-194-2/+64
| |
* | storage: dotgit, fix test not closing filesMáximo Cuadros2017-07-192-0/+2
| |
* | storage: dotgit, close temp file before renameMáximo Cuadros2017-07-181-6/+9
|/
* Fixed modules directory pathCromel-PC\Cromel2017-06-282-2/+2
|
* fix race on packfile writerSantiago M. Mola2017-06-271-1/+1
|
* storage/filesystem: Fix nil dereference in Shallow()JP Sugarbroad2017-06-231-1/+1
| | | This code crashes if the shallow file doesn't exist.
* internal/dotgit: rewrite code to avoid stackoverflow errorsAntonio Jesus Navarro Perez2017-06-191-6/+6
|
* fix merge commitMáximo Cuadros2017-06-181-4/+0
|
* *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-181-0/+4
|\
| * Merge pull request #369 from smola/windowsMáximo Cuadros2017-06-172-11/+10
| |\ | | | | | | Windows support
| | * dotgit: support reading reference files in WindowsSantiago M. Mola2017-06-021-9/+8
| | |
| | * test: more Windows path handlingSantiago M. Mola2017-06-021-2/+2
| | |
* | | *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-189-38/+43
|/ /
* | fix gofmtSantiago M. Mola2017-06-131-2/+2
| |
* | storage/filesystem: call initialization explicitely, fixes #408Santiago M. Mola2017-06-013-15/+16
|/ | | | | | | | | | | | | 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-214-0/+66
|
* worktree: reset and checkout support for submodulesMáximo Cuadros2017-04-151-1/+1
|
* Lazily load object index.JP Sugarbroad2017-04-061-6/+22
| | | | fixes #327
* use go-billy.v2 versionAntonio Jesus Navarro Perez2017-03-108-9/+9
|
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-0718-54/+54
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* documentation and API improvementsMáximo Cuadros2017-02-216-19/+225
|
* Repository.Init now handles non-standard .git locationMáximo Cuadros2017-02-132-0/+18
|
* storage: git.Storer move to storage.Storer and module handlingMáximo Cuadros2017-02-126-4/+74
|
* Fix missing objects if they where deltified using ref-deltaAntonio Jesus Navarro Perez2017-02-071-3/+6
| | | | | - Deleted invalid logic that returned nil if an ref-delta was not found into the decoder index. This logic was missing objects if it was deltified using ref-deltas. - Now, to avoid that problem, index is mandatory to decode correctly a packfile of a specific type. Decoder.SetOffsets method now is called into the EncodedObjectIterator to avoid this problem.
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-3015-36/+36
|
* new git fixture pathMáximo Cuadros2017-01-304-4/+4
|
* rename billy importsMáximo Cuadros2017-01-304-12/+8
|
* example: using new constructorsMáximo Cuadros2017-01-301-93/+11
|\
| * config: documentation improvementsMáximo Cuadros2017-01-301-2/+1
| |
| * config: marshal and unmarshal implementationMáximo Cuadros2017-01-261-93/+12
| |
* | storage: IndexStorer implementationMáximo Cuadros2017-01-293-1/+54
| |
* | storage: IndexStorer implementationMáximo Cuadros2017-01-286-10/+88
|/
* packfile/decoder: speed up packfile iterator when specific type (#200)Antonio Navarro Perez2017-01-122-27/+70
|
* Extract billy (#173)Sergio Arbeo2016-12-198-26/+34
| | | | | | | | | | | | | | | * 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-156-1/+171
| | | | | | | | * storage: shallow storage * changes * changes
* move plumbing from top level package to plumbing (#183)Santiago M. Mola2016-12-144-77/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * plumbing: rename Object -> EncodedObject. * plumbing/storer: rename ObjectStorer -> EncodedObjectStorer. * move difftree to plumbing/difftree. * move diff -> utils/diff * make Object/Tag/Blob/Tree/Commit/File depend on storer. * Object and its implementations now depend only on storer.EncodedObjectStorer, not git.Repository. * Tests are decoupled accordingly. * move Object/Commit/File/Tag/Tree to plumbing/object. * move Object/Commit/File/Tag/Tree to plumbing/object. * move checkClose to utils/ioutil. * move RevListObjects to plumbing/revlist.Objects. * move DiffTree to plumbing/difftree package. * rename files with plural nouns to singular * plumbing/object: add GetBlob/GetCommit/GetTag/GetTree.
* config: Config, bare flag (#177)Máximo Cuadros2016-12-122-16/+41
| | | | | | | | * config.Config: bare flag * changes * changes
* revision based on goreportcard.comMáximo Cuadros2016-12-062-0/+2
|
* storage: filesystem, clean close when the packfile is not used (#140)Máximo Cuadros2016-11-282-14/+65
|
* transport: create Client interface (#132)Santiago M. Mola2016-11-231-2/+2
| | | | | | | | | | | | | | | * plumbing: move plumbing/client package to plumbing/transport. * transport: create Client interface. * A Client can instantiate any client transport service. * InstallProtocol installs a Client for a given protocol, instead of just a UploadPackService. * A Client can open a session for fetch-pack or send-pack for a specific Endpoint. * Adapt ssh and http clients to the new client interface. * updated doc