aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* transport/http: fix partial request with haves. Fix #216. (#221)Antonio Navarro Perez2017-01-257-8/+32
|
* transport: remove SetAuth, fixes #206 (#210)Anthony Weems2017-01-1719-120/+101
| | | | | * remove SetAuth functions, implement at NewUploadPackSession/NewReceivePackSession level. * propagate transport.Auth from Fetch/Pull/Clone options to the transport API.
* packfile/decoder: speed up packfile iterator when specific type (#200)Antonio Navarro Perez2017-01-122-1/+134
|
* packfile/scanner: reset zlib reader instead of new one (#201)Antonio Navarro Perez2017-01-121-5/+20
|
* plumbing: fix signature with `>` before `<` parsing (#204)Máximo Cuadros2017-01-092-2/+16
|
* server: add git server implementation (#190)Santiago M. Mola2017-01-0438-275/+1502
| | | | | | | | | | | | | | | * 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.
* remote: add Push (#178)Santiago M. Mola2016-12-194-25/+80
| | | | | | | | | | | | * remote: add Push. * add Push method to Remote. * add method Push to Repository. * examples: add push example. * requested changes * add tests, fixes
* fix typo in docs for plumbing/difftree/internal/merkletrie/iter.go (#192)Miguel Molina2016-12-191-1/+1
|
* fix plumbing/difftree package name (#191)v4.0.0-rc6Santiago M. Mola2016-12-192-2/+2
|
* Extract billy (#173)Sergio Arbeo2016-12-191-1/+2
| | | | | | | | | | | | | | | * 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
* packfile: delta selection logic (#182)Antonio Navarro Perez2016-12-1610-112/+474
| | | | | | | | | | * packfile: delta selection logic - Implemented logic to assign deltas to objects * Requested changes * Improved tests and fix errors
* Improve Tag test coverage. (#188)Antonio Navarro Perez2016-12-152-9/+109
|
* storage: shallow storage (#180)Máximo Cuadros2016-12-151-0/+10
| | | | | | | | * storage: shallow storage * changes * changes
* transport: ssh, keeping the original path (#189)Máximo Cuadros2016-12-151-4/+1
|
* protocol/packp: use ReferenceName type for Command.Name. (#187)Santiago M. Mola2016-12-154-24/+27
|
* move plumbing from top level package to plumbing (#183)Santiago M. Mola2016-12-1438-137/+5996
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* packfile: improve delta copy operation encoding code (#186)Antonio Navarro Perez2016-12-141-31/+13
|
* format/packfile: implement delta encoding (#172)Antonio Navarro Perez2016-12-145-25/+322
| | | | | | | | | | | | * format/packfile: implement delta encoding - Added all the logic to the encoder to be able to encode ref-delta and offset-delta objects - Created plumbing.ObjectToPack to handle deltas and standard objects when we are writting them into a packfile - Added specific encoder delta tests, one standard object and one delta, and one standard object and two deltas * Requested changes. * Requested changes
* transport/git: fix pktline encode and timeoutMáximo Cuadros2016-12-121-8/+3
|
* plumbing/transport/git: fix import (#179)Santiago M. Mola2016-12-121-1/+1
|
* transport: new git protocol (#175)Máximo Cuadros2016-12-129-37/+260
|
* packfile: delta diff implementation (#159)Antonio Navarro Perez2016-12-094-0/+637
| | | | | | | | | | * packfile: delta diff implementation - Renamed delta.go to patch_delta.go - Added diff_delta.go file - Added tests that creates a diff and then tries to patch it * Requested changes
* transport: add git-send-pack support to local/ssh. (#163)Santiago M. Mola2016-12-0919-62/+692
| | | | | | | | | * protocol/packp: add Packfile field to ReferenceUpdateRequest. * protocol/packp: add NewReferenceUpdateRequestFromCapabilities. * NewReferenceUpdateRequestFromCapabilities can be used to create a ReferenceUpdateRequest with initial capabilities compatible with the server. * protocol/packp: fix new line handling on report status. * transport/file: test error on unexisting command.
* packp/capability: trim spaces on capabilities decode. (#170)Santiago M. Mola2016-12-092-0/+14
| | | | | | git 1.8 used to write a leading space in the capabilities announcement for git-receive-pack. We now trim spaces before decoding a capabilities list to be more tolerant about this kind of difference.
* plumbing/transport: allow AdvertisedReferences being called multiple times. ↵Santiago M. Mola2016-12-085-31/+23
| | | | | | | | (#165) * AdvertisedReferences is now part of transport.Session. * It is allowed to be called more than once. * It is allowed to be called before and after FetchPack/SendPack. * Implementations cache its result.
* remote: sideband support (#164)Máximo Cuadros2016-12-077-51/+49
| | | | | | * remote: sideband support * changes
* revision based on goreportcard.comMáximo Cuadros2016-12-0611-17/+16
|
* protocol/packp: add report status message. (#162)Santiago M. Mola2016-12-064-4/+402
|
* protocol/packp: UploadPackResponse implementation (#161)Máximo Cuadros2016-12-0614-60/+471
| | | | | | | | | | | | | | | | * plumbing/protocol: paktp avoid duplication of haves, wants and shallow * protocol/pakp: UploadPackResponse implementation * changes * changes * changes * debug * changes
* transport/internal: error handling fixes and clean up (#160)Santiago M. Mola2016-12-066-58/+175
| | | | | | | | | | | | | | | | | | | | * protocol/packp: remove redundant isFlush check on AdvRefs. * protocol/packp: improve AdvRefs documentation. * transport: improve error handling for non-existing repos. * protocol/packp: AdvRefs Decode now returns different errors for empty, but syntactically correct, AdvRefs message (ErrEmptyAdvRefs) and empty input (ErrEmptyInput). * transport/internal/common: read stderr only when needed (ErrEmptyInput). Close the client gracefully. * transport/internal/common: missing stderr on non existing repository does not block. * transport/internal/common: buffer error messages. * transport/file: fix changing binary name, add tests. * transport/file: support changing git-upload-pack and git-receive-pack binary names. * transport/file: add tests for misbehaving servers. * transport/internal/common: remove Stderr field. * transport/internal/common: do not close twice.
* plumbing/protocol: paktp avoid duplication of haves, wants and shallow (#158)Máximo Cuadros2016-12-056-42/+164
|
* protocol/packp: add reference update request encoder. (#147)Santiago M. Mola2016-12-057-0/+759
| | | | | * add ReferenceUpdateRequest struct. * add ReferenceUpdateRequest decoder. * add ReferenceUpdateRequest encoder.
* protocol/packp: improve AdvRefs tests (#157)Santiago M. Mola2016-12-053-32/+12
| | | | | | * protocol/packp: fix Example* func names for AdvRefs. * protocol/packp: test AdvRefs Encode/Decode, no internal functions.
* BaseSuite improvements, usage of file:// protoMáximo Cuadros2016-12-022-19/+19
|
* capabilities: full integration (#151)Máximo Cuadros2016-12-0115-99/+468
| | | | | | | | | | | | | | | | | | * format/pktline: fix readPayloadLen err handling * protocol/pakp: UploadReq validation and creation of capabilities * protocol/pakp: AdvRef tests * protocol/pakp: capability.List.Delete * protocol: filter unsupported capabilities * remote capability negociation * transport: UploadRequest validation * requested changes
* capability: support empty input on Decode. (#153)Santiago M. Mola2016-11-304-8/+11
| | | | | Calling capability.List's Decode with nil input will have no effect. This is useful in other decoders, where an empty capability list is received as an empty byte slice.
* protocol/packp: sideband muxer and demuxer (#143)Máximo Cuadros2016-11-306-0/+466
| | | | | | | | | | | | | | | | * format/pakp: sideband demuxer * format/pakp: sideband muxer * format/pakp: sideband demuxer and muxer * protocol/pakp: sideband demuxer and muxer * documentation and improvements * improvements * handle scan errors properly
* format/pktline: fix readPayloadLen err handling (#148)Máximo Cuadros2016-11-302-3/+15
|
* protocol/packp: capabilities new Capability entity and List struct, test ↵Máximo Cuadros2016-11-2919-469/+811
| | | | | | | | | | improvements (#144) * protocol/pakp: capabilities new Capability entity and List struct, test improvements * etc: example cloud-config file * removing sorting from List.String
* transport: add local transport (#145)Santiago M. Mola2016-11-2911-333/+479
| | | | | * transport: move common packp protocol out of ssh transport. * fixtures: add fixture for empty repository. * transport: add file:// transport
* remove old types from transport and use packp (#142)Santiago M. Mola2016-11-2823-489/+406
| | | | | | | | | | * protocol: move UploadPackRequest to protocol. * UploadPackRequest is now defined as an embedding of UploadRequest and UploadHaves. * Move http encoding specific code from UploadPackRequest to transport/http. * rename UlReq to UploadRequest * packp: move AdvRefs Encoder/Decoder to Encode/Decode methods. * packp: move UploadRequest Encoder/Decoder to Encode/Decode methods. * packp: Remove transport.UploadPackInfo in favor of packp. AdvRefs.
* move: format/packp -> protocol/packp (#141)Santiago M. Mola2016-11-2525-521/+480
| | | | | | | | | | | | | | | | | | | | | | | * move: format/packp -> protocol/packp * format/packp -> protocol/packp * format/packp/pktline -> format/pktline. * move: protocol/packp/ulreq/* -> protocol/packp/* * protocol/packp: rename UlReq types to make them unique. * * protocol/packp: namespace UlReq encoder. * protocol/packp: namespace UlReq decoder. * protocol/packp: fix example names * move: protocol/packp/advrefs/* -> protocol/packp/* * further ulreq namespacing * protocol/packp: namespace AdvRefs types.
* plumbing/transport: add common tests and fixes. (#136)Santiago M. Mola2016-11-2515-240/+405
| | | | | | | | | | | | | | | | | | | * plumbing/transport: add common tests and fixes. * add common test suite for different transport implementations. * fix different behaviour on error handling for ssh and http. fixes issue #123. * support detecting unexisting repositories with SSH + GitHub/Bitbucket (apparently, there is no standard for all SSH servers). * remove ssh.NewClient (only DefaultClient makes sense at the moment). * make ssh.Client and http.Client private. * utils/ioutil: utilities to work with io interfaces. * * transport: test actual objects fetched, not just packfile size. * * fix doc typo. * * improve UploadPackRequest.IsEmpty
* plumbing/packfile: PACK encoder (#131)Antonio Navarro Perez2016-11-244-15/+272
| | | | | | | | | | | | * plumbing/packfile: PACK encoder - Added simple PACK encoder, deltas not supported by now * Requested changes * Requested changes * Requested changes
* transport: create Client interface (#132)Santiago M. Mola2016-11-2328-1277/+1440
| | | | | | | | | | | | | | | * 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
* plumbing: format, packfile fix issue #129, related #124, and documentation ↵Máximo Cuadros2016-11-232-51/+154
| | | | | | | | improvements (#130) * plumbing: format, packfile fix issue #129, related #124 * plumbing: format, packfile documentation improvements
* Add configurable http client factory (fixes #120) (#121)ferhat elmas2016-11-157-47/+72
| | | | | | | | | | | | | | | | * new http client factory ready to install/override default http(s) * mv GitUploadPackServiceFactory to clients.common pkg * rename http.HTTPError to http.Err * rename http.HTTPAuthMethod to http.AuthMethod * add doc and examples/ usage * general improvements: - update install link in readme to v4 (example are already pointing v4) - fix indentation in package doc (styling for godoc.org) - use http.Status constants instead of integers - close leaked response body - rm named returns which stutter in doc - fix one format string - rm unnecessary if checks - documentation fixes
* Fix nil tx bug (#124)v4.0.0-rc4Alberto Cortés2016-11-142-3/+31
| | | | | | * add test for non-seekable packfiles * packfile: do not throw away the newly created transactioner
* new plumbing package (#118)Máximo Cuadros2016-11-0881-0/+12160
* plumbing: now core was renamed to core, and formats and clients moved inside