aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/protocol
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #475 from mcuadros/fix-ackMáximo Cuadros2017-07-122-23/+42
|\ | | | | plumbing: protocol, fix handling multiple ACK on upload-pack and test…
| * plumbing: protocol, fix handling multiple ACK on upload-packMáximo Cuadros2017-07-122-23/+42
| |
* | Merge pull request #472 from smola/fix-caps-delete-refsMáximo Cuadros2017-07-111-0/+1
|\ \ | |/ |/| improve delete support on push
| * improve delete support on pushSantiago M. Mola2017-07-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * server: implement delete-refs and announce it. * remote: check if server announced delete-refs before trying to delete and fail fast if it does not. Note that the client does not need no send 'delete-refs' back to the server to be able to delete references: ``` delete-refs ----------- If the server sends back the 'delete-refs' capability, it means that it is capable of accepting a zero-id value as the target value of a reference update. It is not sent back by the client, it simply informs the client that it can be sent zero-id values to delete references. ``` So our server implementation does not check if the client sent delete-refs back, it just accepts deletes if it receives them.
* | plumbing: protocol, fix handling multiple ACK on upload-packMáximo Cuadros2017-07-084-17/+76
|/
* capability: accept unknown capabilities, fixes #450Santiago M. Mola2017-06-232-10/+6
| | | | | | | | | GitHub has started using a non-standard capability "early-capabilities" with agent=git/github-g3daa19f21. This is breaking all go-git operations on GitHub. This commit removes validation for known capabilities, so that we can use non-standard capabilities safely.
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-0732-68/+68
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* Remove TODOs from documentationAntonio Jesus Navarro Perez2017-02-282-2/+2
|
* package plumbing documentation improvements (#248)Máximo Cuadros2017-02-071-1/+2
|
* documentation changesMáximo Cuadros2017-01-312-3/+2
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-3032-68/+68
|
* Fix some typos in plumbing docs (#244)Sergio Arbeo2017-01-301-4/+4
|
* Repository.Progress moved as a field in *Options (#237)Máximo Cuadros2017-01-302-7/+7
|
* transport/http: fix partial request with haves. Fix #216. (#221)Antonio Navarro Perez2017-01-252-4/+5
|
* server: add git server implementation (#190)Santiago M. Mola2017-01-048-2/+215
| | | | | | | | | | | | | | | * 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-192-15/+33
| | | | | | | | | | | | * remote: add Push. * add Push method to Remote. * add method Push to Repository. * examples: add push example. * requested changes * add tests, fixes
* protocol/packp: use ReferenceName type for Command.Name. (#187)Santiago M. Mola2016-12-154-24/+27
|
* transport: new git protocol (#175)Máximo Cuadros2016-12-124-5/+37
|
* transport: add git-send-pack support to local/ssh. (#163)Santiago M. Mola2016-12-0910-47/+229
| | | | | | | | | * 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.
* remote: sideband support (#164)Máximo Cuadros2016-12-074-18/+29
| | | | | | * remote: sideband support * changes
* revision based on goreportcard.comMáximo Cuadros2016-12-066-11/+11
|
* protocol/packp: add report status message. (#162)Santiago M. Mola2016-12-064-4/+402
|
* protocol/packp: UploadPackResponse implementation (#161)Máximo Cuadros2016-12-0611-11/+446
| | | | | | | | | | | | | | | | * 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-063-37/+47
| | | | | | | | | | | | | | | | | | | | * 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-054-42/+137
|
* 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.
* capabilities: full integration (#151)Máximo Cuadros2016-12-019-88/+393
| | | | | | | | | | | | | | | | | | * 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
* protocol/packp: capabilities new Capability entity and List struct, test ↵Máximo Cuadros2016-11-2918-467/+806
| | | | | | | | | | improvements (#144) * protocol/pakp: capabilities new Capability entity and List struct, test improvements * etc: example cloud-config file * removing sorting from List.String
* remove old types from transport and use packp (#142)Santiago M. Mola2016-11-2814-136/+319
| | | | | | | | | | * 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-2517-0/+3853
* 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.