aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* difftree: merkletrie internal package with iterator (#133)Alberto Cortés2016-11-239-0/+1004
|
* 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
* utils: fs, memory fix read offsetMáximo Cuadros2016-11-202-1/+23
|
* utils: fs, memory fix ReadDir, error getting filenameMáximo Cuadros2016-11-202-1/+43
|
* Add configurable http client factory (fixes #120) (#121)ferhat elmas2016-11-1512-77/+205
| | | | | | | | | | | | | | | | * 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
* utils/fs: add ReadAt to memory file and tests. (#122)Santiago M. Mola2016-11-113-2/+46
| | | | * memory files now implement io.ReaderAt. * tests now check ReadAt behaviour.
* new plumbing package (#118)Máximo Cuadros2016-11-08133-1933/+2000
| | | * plumbing: now core was renamed to core, and formats and clients moved inside
* config: storer commentMáximo Cuadros2016-11-071-1/+1
|
* gofmt simplify (#111)ferhat elmas2016-11-0713-189/+188
|
* global storage interface refactor (#112)Máximo Cuadros2016-11-0737-730/+548
| | | | | | | | | | | * core: ObjectStorage, ReferenceStorage renamed to ObjectStorer and ReferenceStorer * rebase * general, changes request by @alcortes * general, changes request by @alcortes
* utils/fs: added test for open-read-seek. (#117)v4.0.0-rc3Santiago M. Mola2016-11-071-1/+24
| | | | Previously we tested only seek on created files, not opened.
* utils/fs: Fix O_CREATE flag check in OpenFile (#116)Pierre Guilleminot2016-11-072-1/+9
| | | | | | * utils/fs: Fix O_CREATE flag check in OpenFile * utils/fs/os: test that Open does not create dirs.
* clients: common, initialize Refs in GitUploadPackInfoMáximo Cuadros2016-11-051-1/+4
|
* fixtures: Add missing ObjectsCount (#115)v4.0.0-rc2Antonio Navarro Perez2016-11-041-0/+1
|
* add Blobs, Trees and Objects iters. (#114)Santiago M. Mola2016-11-049-119/+440
| | | | | * Now every object type as an iterator in Repository. * old TreeIter is TreeWalker again, TreeIter now matches the same behaviour as other iterators.
* fixtures: Add DotGitHash to tags repository (#113)Antonio Navarro Perez2016-11-041-1/+2
|