aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/storer
Commit message (Collapse)AuthorAgeFilesLines
* storage: transactional, new storage with transactional capabilitiesMáximo Cuadros2018-12-101-2/+0
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* plumbing: storer, new NewMultiReferenceIterMáximo Cuadros2018-10-312-2/+89
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* storage: transactional, new storage with transactional capabilities (WIP)Máximo Cuadros2018-10-291-1/+1
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* object: get object size without reading whole objectJeremy Stribling2018-10-112-0/+12
| | | | Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
* all: remove some unused codeDaniel Martí2018-03-011-2/+0
| | | | Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
* storer: separate loose and packed object mgmt into optional ifacesJeremy Stribling2017-11-292-36/+25
| | | | Suggested by mcuadros.
* plumbing: add `HasEncodedObject` method to StorerJeremy Stribling2017-11-291-0/+9
| | | | | | | 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-292-2/+7
|
* Support for repacking objectsTaru Karttunen2017-11-292-0/+9
|
* Address CI and move code aroundTaru Karttunen2017-11-291-2/+4
|
* First pass of prune designTaru Karttunen2017-11-292-0/+27
|
* filesystem: implement PackRefs()Jeremy Stribling2017-11-291-0/+2
| | | | | | | | | | 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-291-20/+4
| | | | | | | | | | - 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-281-0/+4
|
* Use optionally locking when updating refsTaru Karttunen2017-11-271-0/+1
|
* examples,plumbing,utils: typo fixesferhat elmas2017-11-202-4/+4
|
* storage: reuse deltas from packfilesSantiago M. Mola2017-07-271-0/+8
| | | | | | | | | | | | | | | | | | | * 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).
* fix gofmtSantiago M. Mola2017-06-131-1/+1
|
* storage/filesystem: call initialization explicitely, fixes #408Santiago M. Mola2017-06-011-0/+8
| | | | | | | | | | | | | 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.
* Merge pull request #296 from ajnavarro/improvement/repositorySantiago M. Mola2017-03-212-1/+161
|\ | | | | git: Repository methods changes
| * Make referenceFilteredIter privateAntonio Jesus Navarro Perez2017-03-061-5/+5
| |
| * git: Repository methods changesAntonio Jesus Navarro Perez2017-03-062-1/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To have a more consistent public API, we decided to rename some methods, and add others: - Commit method renamed to CommitObject - Commits method renamed to CommitObjects - Tree method renamed to TreeObject - Trees method renamed to TreeObjects - Tags method renamed to TagObjects - Tag method renamed to TagObject - Added method Tags that returns tag references - Added method Branches that returns branch references - Added method Notes that returns note references - Added BlobObject method - Added BlobObjects method Also, we added more functionality related to references: - Added iterator to iterate References with a specific filter Some notes: - #298
* | project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-076-6/+6
|/ | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* Merge pull request #288 from ajnavarro/documentation/plumbingMáximo Cuadros2017-02-272-5/+5
|\ | | | | plumbing: improve documentation (Fix #242)
| * plumbing: improve documentation (Fix #242)Antonio Jesus Navarro Perez2017-02-232-5/+5
| |
* | plumbing/storer: referenceIterator now returns the error if anyAntonio Jesus Navarro Perez2017-02-232-1/+25
|/
* plumbing/storer: add RemoveReferenceSantiago M. Mola2017-02-161-0/+1
|
* package plumbing documentation improvements (#248)Máximo Cuadros2017-02-071-0/+2
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-306-6/+6
|
* server: add git server implementation (#190)Santiago M. Mola2017-01-041-0/+7
| | | | | | | | | | | | | | | * server: add generic server implementation (transport-independent), both for git-upload-pack and git-receive-pack. * server: move internal functions to internal/common. * cli: add git-receive-pack and git-upload-pack implementations. * format/packfile: add UpdateObjectStorage function, extracted from Remote. * transport: implement tranport RPC-like, only with git-upload-pack and git-receive-pack methods. Client renamed to Transport. * storer: add storer.Storer interface. * protocol/packp: add UploadPackResponse constructor with packfile. * protocol/packp: fix UploadPackResponse encoding, add tests. * protocol/packp/capability: implement All.
* storage: shallow storage (#180)Máximo Cuadros2016-12-151-0/+10
| | | | | | | | * storage: shallow storage * changes * changes
* move plumbing from top level package to plumbing (#183)Santiago M. Mola2016-12-142-84/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* revision based on goreportcard.comMáximo Cuadros2016-12-061-1/+1
|
* new plumbing package (#118)Máximo Cuadros2016-11-085-0/+576
* plumbing: now core was renamed to core, and formats and clients moved inside