aboutsummaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* plumbing: add `HasEncodedObject` method to StorerJeremy Stribling2017-11-292-0/+34
| | | | | | | This allows the user to check whether an object exists, without reading all the object data from storage. Issue: KBFS-2445
* Make object repacking more configurableTaru Karttunen2017-11-293-6/+18
|
* Support for repacking objectsTaru Karttunen2017-11-293-13/+36
|
* First pass of prune designTaru Karttunen2017-11-293-10/+85
|
* dotgit: use bufio for PackRefsJeremy Stribling2017-11-291-10/+8
| | | | | | Suggested by taruti. Issue: #13
* dotgit: during rewriting, re-open packed-refs after lockingJeremy Stribling2017-11-291-9/+21
| | | | | | The file could have been completely replaced while waiting for the lock, so we need to re-open, otherwise we might be reading a stale file that has already been deleted/overwritten.
* filesystem: todo comment about "all" paramJeremy Stribling2017-11-291-0/+4
| | | | Issue: KBFS-2517
* dotgit: fix up PackRefs comment for upstreamingJeremy Stribling2017-11-291-26/+8
|
* filesystem: implement PackRefs()Jeremy Stribling2017-11-294-0/+203
| | | | | | | | | | Currently this implementation is only valid for kbfsgit, since it assumes some things about the filesystem not being updated during the packing, and about conflict resolution rules. In the future, it would be nice to replace this with a more general one, and move this kbfsgit-optimized implementation into kbfsgit. Issue: KBFS-2517
* all: simplificationferhat elmas2017-11-293-16/+12
| | | | | | | | | | - no length for map initialization - don't check for boolean/error return - don't format string - use string method of bytes buffer instead of converting bytes to string - use `strings.Contains` instead of `strings.Index` - use `bytes.Equal` instead of `bytes.Compare`
* dotgit: add CheckAndSetReference testsJeremy Stribling2017-11-282-11/+27
|
* Merge remote-tracking branch 'src-d/master' into gh-fast-forward-fetchJeremy Stribling2017-11-282-6/+76
|\
| * dotgit: don't list references twiceJeremy Stribling2017-11-272-4/+20
| | | | | | | | Restore the `seen` map that avoided listing packed-refs twice.
| * dotgit: add a test for removing a ref from a file and packed-refsJeremy Stribling2017-11-271-0/+29
| |
| * dotgit: remove loose ref AND packed ref, if both existJeremy Stribling2017-11-271-3/+28
| | | | | | | | Issue: KBFS-2509
* | Document Lock+Close usageTaru Karttunen2017-11-271-0/+4
| |
* | Use optionally locking when updating refsTaru Karttunen2017-11-274-13/+76
|/
* all: fixes for ineffective assignferhat elmas2017-11-262-0/+2
|
* update to go-billy.v4 and go-git-fixtures.v3Máximo Cuadros2017-11-2310-16/+16
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* dotgit: remove ref cache for packed refsMiguel Molina2017-11-211-48/+29
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* dotgit: avoid duplicated references returned by RefsMiguel Molina2017-08-291-10/+15
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* dotgit: rewrite the way references are looked upMiguel Molina2017-08-262-24/+76
| | | | | | Now there's only two ways of getting a reference, by checking under refs/ directory or in packed-refs. refs/ directory is checked using a direct read by reference name and packed refs are cached until they have been changed. Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* prevent PackWriter from using Notify if nothing was writtenMiguel Molina2017-08-102-1/+22
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* 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
|