From 7ef39c858f5f10795b14843f52b694bcf338aa9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1ximo=20Cuadros?= Date: Wed, 30 Nov 2016 16:48:36 +0100 Subject: [PATCH] remote capability negociation --- common_test.go | 7 +++++++ remote.go | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/common_test.go b/common_test.go index 1e9040958..3aa369306 100644 --- a/common_test.go +++ b/common_test.go @@ -119,6 +119,13 @@ func (c *MockFetchPackSession) AdvertisedReferences() (*packp.AdvRefs, error) { func (c *MockFetchPackSession) FetchPack( r *packp.UploadPackRequest) (io.ReadCloser, error) { + if !r.Capabilities.Supports(capability.Agent) { + return nil, fmt.Errorf("" + + "invalid test rquest, missing Agent capability, the request" + + "should be created using NewUploadPackRequestFromCapabilities", + ) + } + f := fixtures.ByURL(c.endpoint.String()) if len(r.Wants) == 1 { diff --git a/remote.go b/remote.go index e2f9ae47b..515f75594 100644 --- a/remote.go +++ b/remote.go @@ -171,11 +171,11 @@ func (r *Remote) getWantedReferences(spec []config.RefSpec) ([]*plumbing.Referen func (r *Remote) buildRequest( s storer.ReferenceStorer, o *FetchOptions, refs []*plumbing.Reference, ) (*packp.UploadPackRequest, error) { - req := packp.NewUploadPackRequest() + req := packp.NewUploadPackRequestFromCapabilities(r.advRefs.Capabilities) req.Depth = packp.DepthCommits(o.Depth) for _, ref := range refs { - req.Want(ref.Hash()) + req.Wants = append(req.Wants, ref.Hash()) } i, err := s.IterReferences() @@ -188,7 +188,7 @@ func (r *Remote) buildRequest( return nil } - req.Have(ref.Hash()) + req.Haves = append(req.Haves, ref.Hash()) return nil })