aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Improve Tag test coverage. (#188)Antonio Navarro Perez2016-12-152-9/+109
|
* storage: shallow storage (#180)Máximo Cuadros2016-12-1511-1/+240
| | | | | | | | * storage: shallow storage * changes * changes
* transport: ssh, keeping the original path (#189)Máximo Cuadros2016-12-151-4/+1
|
* .travis CI with multiple git versionsMáximo Cuadros2016-12-152-5/+35
|
* 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-1464-771/+974
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-147-25/+352
| | | | | | | | | | | | * 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
* readme and log example (#181)Máximo Cuadros2016-12-132-133/+79
| | | | | | | | * readme and log example * changes * 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
|
* config: Config, bare flag (#177)Máximo Cuadros2016-12-125-16/+86
| | | | | | | | * config.Config: bare flag * changes * changes
* transport: new git protocol (#175)Máximo Cuadros2016-12-1210-37/+272
|
* examples: review, testing and documentation (#176)Máximo Cuadros2016-12-1213-543/+293
| | | | | | | | | | * examples reviews, testing and documentation * including the execution on travis, and fix readme * fix example link * including the execution on travis
* fixtures: fix empty repository fixture .git (#171)Santiago M. Mola2016-12-121-1/+1
| | | | | | Previous fixture for empty.git was created with clone without --bare. That was not valid for push tests. Replaced with a .git created with git init --bare.
* 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
* Update LICENSE (#174)Sergio Arbeo2016-12-091-1/+1
|
* 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.
* fixtures: always returna a new directory with DotGit. (#169)Santiago M. Mola2016-12-081-9/+6
| | | | | | | DotGit now creates a new temporary directory on every call. This allows test to easily get multiple copies of the same repository (e.g. to test fetch/push cases). It also ensures that tests do not have side effects on other tests unless they share the path from the same DotGit call.
* 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.
* config: support delete refspecs (IsDelete). (#166)Santiago M. Mola2016-12-082-1/+37
|
* repository: Ref -> Reference; Refs -> References. (#168)Santiago M. Mola2016-12-083-27/+30
|
* remote: fix Connect, returned nil error on failure. (#167)Santiago M. Mola2016-12-082-1/+8
|
* remote: sideband support (#164)Máximo Cuadros2016-12-0711-76/+139
| | | | | | * remote: sideband support * changes
* revision based on goreportcard.comMáximo Cuadros2016-12-0618-21/+23
|
* repository: fix test setting global configMáximo Cuadros2016-12-062-4/+3
|
* protocol/packp: add report status message. (#162)Santiago M. Mola2016-12-064-4/+402
|
* protocol/packp: UploadPackResponse implementation (#161)Máximo Cuadros2016-12-0617-67/+580
| | | | | | | | | | | | | | | | * 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-0213-541/+379
|
* capabilities: full integration (#151)Máximo Cuadros2016-12-0117-102/+478
| | | | | | | | | | | | | | | | | | * 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
|
* file: return error on File.Contents() if reader fails (#150)Santiago M. Mola2016-11-301-1/+3
|
* protocol/packp: capabilities new Capability entity and List struct, test ↵Máximo Cuadros2016-11-2922-474/+819
| | | | | | | | | | 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-2912-333/+484
| | | | | * transport: move common packp protocol out of ssh transport. * fixtures: add fixture for empty repository. * transport: add file:// transport
* travis: in PR unset SSH_AUTH_SOCK -> skip ssh tests. (#146)Santiago M. Mola2016-11-281-0/+1
|
* storage: filesystem, clean close when the packfile is not used (#140)Máximo Cuadros2016-11-282-14/+65
|
* remove old types from transport and use packp (#142)Santiago M. Mola2016-11-2827-532/+465
| | | | | | | | | | * 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-2527-523/+482
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* rev-list command implementation for objects (#135)Antonio Navarro Perez2016-11-252-0/+270
| | | | | | | * rev-list command implementation for objects - Stateless method that with a commit list and a repository object get all the reachable objects, ignoring elements into ignore hash list. - Added tests using basic repository commit tree.
* plumbing/transport: add common tests and fixes. (#136)Santiago M. Mola2016-11-2517-240/+512
| | | | | | | | | | | | | | | | | | | * 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
* mv difftree/internal/radixmerkle to difftre/internal/merkletrie (#138)Alberto Cortés2016-11-249-0/+0
|
* 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-2336-1402/+1523
| | | | | | | | | | | | | | | * 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