aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format
Commit message (Collapse)AuthorAgeFilesLines
* storage: reuse deltas from packfilesSantiago M. Mola2017-07-275-98/+293
| | | | | | | | | | | | | | | | | | | * 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).
* test: improve packfile.Encoder testsSantiago M. Mola2017-07-271-54/+68
| | | | | | | * Improve checks for encode/decode. * Make it easier to extend this test with more storage backends.
* storage/filesystem: reuse delta cacheSantiago M. Mola2017-07-271-10/+22
| | | | | Reuse delta base object cache for packfile decoders across multiple instances.
* plumbing/cache: use more explicit interfaceSantiago M. Mola2017-07-271-7/+6
| | | | | | * renamed Add to Put * Get returns a second bool value to indicate if there was hit or miss.
* format: idxfile, support for >2Gb packfilesMáximo Cuadros2017-07-274-1/+106
|
* packfile: create packfile.Index and reuse itSantiago M. Mola2017-07-269-93/+292
| | | | | | | | | | | | | | | 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-192-21/+22
|\ | | | | *: add more IO error checks
| * packfile: check close error in UpdateObjectStorageSantiago M. Mola2017-07-191-8/+14
| |
| * packfile: check zlib reader closing errorSantiago M. Mola2017-07-191-13/+8
| |
* | Merge pull request #493 from src-d/windowsMáximo Cuadros2017-07-191-1/+7
|\ \ | | | | | | *: several windows support fixes
| * | plumbing: format config, escape back slashMáximo Cuadros2017-07-192-4/+2
| | |
| * | worktree: commit, use path package instead of filepathMáximo Cuadros2017-07-192-2/+10
| |/
* / packfile: Avoid panics patching corrupted deltasAntonio Jesus Navarro Perez2017-07-192-16/+85
|/
* Use buffered IO for decoding index files.JP Sugarbroad2017-07-101-2/+3
| | | | This reduces syscall CPU time from >40% to <10% in my local repository.
* plumbing: gitignore, upgrade to go-billy.v3 and test with gocheckMáximo Cuadros2017-06-194-218/+199
|
* Merge pull request #429 from silvertern/gitignoreMáximo Cuadros2017-06-197-0/+676
|\ | | | | Adds .gitignore support
| * Adds gitignore supportOleg Sklyar2017-06-197-0/+676
| |
* | *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-181-1/+1
| |
* | fix gofmtSantiago M. Mola2017-06-132-2/+4
|/
* packfile: A copy operation cannot be bigger than 64kbAntonio Jesus Navarro Perez2017-06-012-1/+35
| | | | More info here: https://github.com/git/git/blob/f7466e94375b3be27f229c78873f0acf8301c0a5/diff-delta.c#L428
* format/packfile: improve binary delta algorithmAntonio Jesus Navarro Perez2017-05-242-441/+94
| | | | Implemented algorithm described in "File System Support for Delta Compression" paper, from "Joshua P. MacDonald".
* format/diff: unified diff encoder and public APIAntonio Jesus Navarro Perez2017-05-233-0/+1242
| | | | | | | | | - Added Patch interface - Added a Unified Diff encoder from Patches - Added Change method to generate Patches - Added Changes method to generate Patches - Added Tree method to generate Patches - Added Commit method to generate Patches
* worktree: Remove and Move methodsMáximo Cuadros2017-05-212-0/+29
|
* format/packfile: fix bug when the delta depth is equals to 50Antonio Jesus Navarro Perez2017-05-082-0/+10
|
* plumbing: index, Entries converted in a slice of pointersMáximo Cuadros2017-04-265-11/+11
|
* format/packfile: rename Seek to SeekFromStartSantiago M. Mola2017-04-263-6/+8
| | | | | | This has signature and behavior distinct from io.Seeker, go vet complains about this, so we change it to a different name to avoid confusion.
* fix format string issues as found by go vetSantiago M. Mola2017-04-261-1/+1
|
* format: index, Index.Entry methodMáximo Cuadros2017-04-132-5/+39
|
* worktree, reset implementation and status improvementsMáximo Cuadros2017-04-121-12/+15
|
* plumbing: format, index stringerMáximo Cuadros2017-04-111-0/+23
|
* 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-0731-51/+51
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* Merge pull request #299 from ajnavarro/fix/read-allSantiago M. Mola2017-03-031-4/+4
|\ | | | | Return values of Read not checked (fix #65)
| * Return values of Read not checked (fix #65)Antonio Jesus Navarro Perez2017-03-021-4/+4
| |
* | replace os.FileMode use with filemode.FileModeAlberto Cortés2017-03-012-5/+7
|/
* plumbing: improve documentation (Fix #242)Antonio Jesus Navarro Perez2017-02-235-6/+51
|
* Merge pull request #278 from ajnavarro/improvement/move-cache-to-plumbingMáximo Cuadros2017-02-211-1/+1
|\ | | | | cache: move package to plumbing
| * cache: move package to plumbingAntonio Jesus Navarro Perez2017-02-211-1/+1
| | | | | | | | Because cache package is only intended to be used at internal level, we move it to the plumbing package.
* | documentation and API improvementsMáximo Cuadros2017-02-211-5/+5
| |
* | format/index: sort the Entries before encodeMáximo Cuadros2017-02-133-4/+28
|/
* Merge pull request #258 from ajnavarro/fix/onf-decoderAntonio Navarro Perez2017-02-092-7/+65
|\ | | | | Fix missing objects if they where deltified using ref-delta
| * Fix missing objects if they where deltified using ref-deltaAntonio Jesus Navarro Perez2017-02-072-7/+65
| | | | | | | | | | - 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.
* | package plumbing documentation improvements (#248)Máximo Cuadros2017-02-0712-830/+625
|/
* documentation changesMáximo Cuadros2017-01-311-2/+3
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-3031-48/+48
|
* new git fixture pathMáximo Cuadros2017-01-306-6/+6
|
* rename billy importsMáximo Cuadros2017-01-301-3/+3
|
* Fix some typos in plumbing docs (#244)Sergio Arbeo2017-01-3011-19/+19
|
* format/index: keep time.Time as zero, when decoded value is 0Máximo Cuadros2017-01-282-6/+12
|
* packfile: cache undeltified objects to improve decode performance (#218)Antonio Navarro Perez2017-01-251-8/+33
| | | | | * Simple object cache that keeps in memory the last undeltified objects. When no more objects can be kept into memory, the oldest one is deleted (FIFO). This speeds up packfile operations preventing redundant seeks and decodes.