aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/server/server.go
Commit message (Collapse)AuthorAgeFilesLines
* *: fixed tautological error conditionsautological error conditionsChristian Muehlhaeuser2019-07-291-5/+0
| | | | | | | | | | - Added missing error handling around encodeCommitData and prevented shadowing err. - Removed tautological error checks. Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com> (cherry picked from commit 7d76176416551fc21d98bc17768d158a82281406)
* all: remove some unused codeDaniel Martí2018-03-011-11/+0
| | | | Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
* *: add pointer to the new transport.Endpoint structMáximo Cuadros2017-11-211-2/+2
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* config: support a configurable, and turn-off-able, pack.windowJeremy Stribling2017-09-111-1/+2
| | | | | | | | | | | | | | | | | | | | One use of go-git is to transfer git data from a non-standard git repo (not stored in a file system, for example) to a "remote" backed by a standard, local .git repo. In this scenario, delta compression is not needed to reduce transfer time over the "network", because there is no network. The underlying storage layer has already taken care of the data tranfer, and sending the objects to local .git storage doesn't require compression. So this PR gives the user the option to turn off compression when it isn't needed. Of course, this results in a larger, uncompressed local .git repo, but the user can then run git gc or git repack on that repo if they care about the storage costs. Turning the pack window to 0 on reduces total push time of a 36K repo by 50 seconds (out of a pre-PR total of 3m26s).
* transport: context package supportMáximo Cuadros2017-07-251-4/+9
|
* Merge pull request #476 from smola/server-as-clientMáximo Cuadros2017-07-111-6/+25
|\ | | | | transport/server: add asClient parameter
| * transport/server: add NewClientSantiago M. Mola2017-07-111-6/+25
| | | | | | | | | | | | server.NewClient returns a server that acts as a client. This makes it working seamlessly when registering a server directly with `client.InstallProtocol`.
* | improve delete support on pushSantiago M. Mola2017-07-111-32/+12
|/ | | | | | | | | | | | | | | | | | | | | | | * 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.
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-071-7/+7
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* Merge pull request #294 from ajnavarro/improvement/todos-documentationSantiago M. Mola2017-03-011-1/+1
|\ | | | | Remove TODOs from documentation
| * Remove TODOs from documentationAntonio Jesus Navarro Perez2017-02-281-1/+1
| |
* | plumbing/revlist: input as a slice of hashes instead of commitsAntonio Jesus Navarro Perez2017-02-271-17/+2
|/ | | | | | | - Now the input of the method Objects inside revlist package is a slice of hashes instead of commits. Hashes can be from Blobs, Trees and Commits objects. - ObjectStorer now is used to obtain the object content using hashes slice. - This PR fix #222. Now a test into upload_pack_test.go file is not skipped anymore. - Remove code from remote.go and server.go that is not necessary.
* documentation changesMáximo Cuadros2017-01-311-1/+1
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-301-8/+8
|
* transport: remove SetAuth, fixes #206 (#210)Anthony Weems2017-01-171-2/+2
| | | | | * remove SetAuth functions, implement at NewUploadPackSession/NewReceivePackSession level. * propagate transport.Auth from Fetch/Pull/Clone options to the transport API.
* server: add git server implementation (#190)Santiago M. Mola2017-01-041-0/+448
* 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.