Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Commit 0f2abe7

Browse files
authored
Merge pull request #394 from ajnavarro/fix/endpoints-equality
transport/server: use Endpoint string representation as a map key.
2 parents 681f24d + 7e798fc commit 0f2abe7

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

plumbing/transport/server/loader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ func (l *fsLoader) Load(ep transport.Endpoint) (storer.Storer, error) {
4444

4545
// MapLoader is a Loader that uses a lookup map of storer.Storer by
4646
// transport.Endpoint.
47-
type MapLoader map[transport.Endpoint]storer.Storer
47+
type MapLoader map[string]storer.Storer
4848

4949
// Load returns a storer.Storer for given a transport.Endpoint by looking it up
5050
// in the map. Returns transport.ErrRepositoryNotFound if the endpoint does not
5151
// exist.
5252
func (l MapLoader) Load(ep transport.Endpoint) (storer.Storer, error) {
53-
s, ok := l[ep]
53+
s, ok := l[ep.String()]
5454
if !ok {
5555
return nil, transport.ErrRepositoryNotFound
5656
}

plumbing/transport/server/loader_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"path/filepath"
66

77
"gopkg.in/src-d/go-git.v4/plumbing/transport"
8+
"gopkg.in/src-d/go-git.v4/storage/memory"
89

910
. "gopkg.in/check.v1"
1011
)
@@ -54,3 +55,18 @@ func (s *LoaderSuite) TestLoadIgnoreHost(c *C) {
5455
c.Assert(err, IsNil)
5556
c.Assert(sto, NotNil)
5657
}
58+
59+
func (s *LoaderSuite) TestMapLoader(c *C) {
60+
ep, err := transport.NewEndpoint("file://test")
61+
sto := memory.NewStorage()
62+
c.Assert(err, IsNil)
63+
64+
loader := MapLoader{ep.String(): sto}
65+
66+
ep, err = transport.NewEndpoint("file://test")
67+
c.Assert(err, IsNil)
68+
69+
loaderSto, err := loader.Load(ep)
70+
c.Assert(err, IsNil)
71+
c.Assert(sto, Equals, loaderSto)
72+
}

plumbing/transport/server/server_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ func (s *BaseSuite) prepareRepositories(c *C, basic *transport.Endpoint,
5353
*basic = ep
5454
sto, err := filesystem.NewStorage(fs)
5555
c.Assert(err, IsNil)
56-
s.loader[ep] = sto
56+
s.loader[ep.String()] = sto
5757

5858
path = "/empty.git"
5959
url = fmt.Sprintf("%s://%s", inprocScheme, path)
6060
ep, err = transport.NewEndpoint(url)
6161
c.Assert(err, IsNil)
6262
*empty = ep
63-
s.loader[ep] = memory.NewStorage()
63+
s.loader[ep.String()] = memory.NewStorage()
6464

6565
path = "/non-existent.git"
6666
url = fmt.Sprintf("%s://%s", inprocScheme, path)

0 commit comments

Comments
 (0)