aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* server: add git server implementation (#190)Santiago M. Mola2017-01-0443-308/+1641
| | | | | | | | | | | | | | | * 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-1912-33/+565
| | | | | | | | | | | | * 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-1918-1183/+46
| | | | | | | | | | | | | | | * 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
* README and examples progressv4.0.0-rc5Máximo Cuadros2016-12-164-15/+48
|
* remote: make Fetch atomic. (#185)Santiago M. Mola2016-12-165-273/+283
| | | | | | | * Remote now exposes only Fetch. No Connect, Disconnect, etc. * Repository uses a private fetch method in Remote for Clone/Pull. * getting capabilities, HEAD or other information from remote requires using the lower level client. * add Fetch method to Repository.
* 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-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
|