From 726204ed80d74f7503b93bb3fce665cab47dee33 Mon Sep 17 00:00:00 2001 From: "Santiago M. Mola" Date: Thu, 9 Feb 2017 15:28:48 +0100 Subject: git: make Storer public in Repository. --- common_test.go | 3 -- repository.go | 85 +++++++++++++++++++++++++++--------------------------- repository_test.go | 4 +-- worktree.go | 4 +-- worktree_test.go | 10 +++---- 5 files changed, 52 insertions(+), 54 deletions(-) diff --git a/common_test.go b/common_test.go index 627f8b3..5aabd06 100644 --- a/common_test.go +++ b/common_test.go @@ -6,7 +6,6 @@ import ( "srcd.works/go-git.v4/plumbing" "srcd.works/go-git.v4/plumbing/format/packfile" - "srcd.works/go-git.v4/plumbing/storer" "srcd.works/go-git.v4/plumbing/transport" "srcd.works/go-git.v4/plumbing/transport/client" "srcd.works/go-git.v4/storage/filesystem" @@ -23,7 +22,6 @@ func Test(t *testing.T) { TestingT(t) } type BaseSuite struct { fixtures.Suite Repository *Repository - Storer storer.EncodedObjectStorer backupProtocol transport.Transport cache map[string]*Repository @@ -45,7 +43,6 @@ func (s *BaseSuite) TearDownSuite(c *C) { func (s *BaseSuite) buildBasicRepository(c *C) { f := fixtures.Basic().One() s.Repository = s.NewRepository(f) - s.Storer = s.Repository.s } func (s *BaseSuite) NewRepository(f *fixtures.Fixture) *Repository { diff --git a/repository.go b/repository.go index b11e8b6..a8dd7ef 100644 --- a/repository.go +++ b/repository.go @@ -29,8 +29,9 @@ var ( // Repository represents a git repository type Repository struct { + Storer Storer + r map[string]*Remote - s Storer wt billy.Filesystem } @@ -160,20 +161,20 @@ func PlainClone(path string, isBare bool, o *CloneOptions) (*Repository, error) func newRepository(s Storer, worktree billy.Filesystem) *Repository { return &Repository{ - s: s, - wt: worktree, - r: make(map[string]*Remote, 0), + Storer: s, + wt: worktree, + r: make(map[string]*Remote, 0), } } // Config return the repository config func (r *Repository) Config() (*config.Config, error) { - return r.s.Config() + return r.Storer.Config() } // Remote return a remote if exists func (r *Repository) Remote(name string) (*Remote, error) { - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return nil, err } @@ -183,12 +184,12 @@ func (r *Repository) Remote(name string) (*Remote, error) { return nil, ErrRemoteNotFound } - return newRemote(r.s, c), nil + return newRemote(r.Storer, c), nil } // Remotes returns a list with all the remotes func (r *Repository) Remotes() ([]*Remote, error) { - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return nil, err } @@ -197,7 +198,7 @@ func (r *Repository) Remotes() ([]*Remote, error) { var i int for _, c := range cfg.Remotes { - remotes[i] = newRemote(r.s, c) + remotes[i] = newRemote(r.Storer, c) i++ } @@ -210,9 +211,9 @@ func (r *Repository) CreateRemote(c *config.RemoteConfig) (*Remote, error) { return nil, err } - remote := newRemote(r.s, c) + remote := newRemote(r.Storer, c) - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return nil, err } @@ -222,12 +223,12 @@ func (r *Repository) CreateRemote(c *config.RemoteConfig) (*Remote, error) { } cfg.Remotes[c.Name] = c - return remote, r.s.SetConfig(cfg) + return remote, r.Storer.SetConfig(cfg) } // DeleteRemote delete a remote from the repository and delete the config func (r *Repository) DeleteRemote(name string) error { - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return err } @@ -237,7 +238,7 @@ func (r *Repository) DeleteRemote(name string) error { } delete(cfg.Remotes, name) - return r.s.SetConfig(cfg) + return r.Storer.SetConfig(cfg) } // Clone clones a remote repository @@ -308,13 +309,13 @@ func (r *Repository) cloneRefSpec(o *CloneOptions, } func (r *Repository) setIsBare(isBare bool) error { - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return err } cfg.Core.IsBare = isBare - return r.s.SetConfig(cfg) + return r.Storer.SetConfig(cfg) } const ( @@ -333,13 +334,13 @@ func (r *Repository) updateRemoteConfig(remote *Remote, o *CloneOptions, refspecSingleBranch, head.Name().Short(), c.Name, ))} - cfg, err := r.s.Config() + cfg, err := r.Storer.Config() if err != nil { return err } cfg.Remotes[c.Name] = c - return r.s.SetConfig(cfg) + return r.Storer.SetConfig(cfg) } func (r *Repository) updateReferences(spec []config.RefSpec, @@ -348,7 +349,7 @@ func (r *Repository) updateReferences(spec []config.RefSpec, if !resolvedHead.IsBranch() { // Detached HEAD mode head := plumbing.NewHashReference(plumbing.HEAD, resolvedHead.Hash()) - return updateReferenceStorerIfNeeded(r.s, head) + return updateReferenceStorerIfNeeded(r.Storer, head) } refs := []*plumbing.Reference{ @@ -361,7 +362,7 @@ func (r *Repository) updateReferences(spec []config.RefSpec, refs = append(refs, r.calculateRemoteHeadReference(spec, resolvedHead)...) for _, ref := range refs { - u, err := updateReferenceStorerIfNeeded(r.s, ref) + u, err := updateReferenceStorerIfNeeded(r.Storer, ref) if err != nil { return updated, err } @@ -388,7 +389,7 @@ func (r *Repository) calculateRemoteHeadReference(spec []config.RefSpec, } name = rs.Dst(name) - _, err := r.s.Reference(name) + _, err := r.Storer.Reference(name) if err == plumbing.ErrReferenceNotFound { refs = append(refs, plumbing.NewHashReference(name, resolvedHead.Hash())) } @@ -515,72 +516,72 @@ func (r *Repository) Push(o *PushOptions) error { // Commit return a Commit with the given hash. If not found // plumbing.ErrObjectNotFound is returned func (r *Repository) Commit(h plumbing.Hash) (*object.Commit, error) { - return object.GetCommit(r.s, h) + return object.GetCommit(r.Storer, h) } // Commits returns an unsorted CommitIter with all the commits in the repository func (r *Repository) Commits() (*object.CommitIter, error) { - iter, err := r.s.IterEncodedObjects(plumbing.CommitObject) + iter, err := r.Storer.IterEncodedObjects(plumbing.CommitObject) if err != nil { return nil, err } - return object.NewCommitIter(r.s, iter), nil + return object.NewCommitIter(r.Storer, iter), nil } // Tree return a Tree with the given hash. If not found // plumbing.ErrObjectNotFound is returned func (r *Repository) Tree(h plumbing.Hash) (*object.Tree, error) { - return object.GetTree(r.s, h) + return object.GetTree(r.Storer, h) } // Trees returns an unsorted TreeIter with all the trees in the repository func (r *Repository) Trees() (*object.TreeIter, error) { - iter, err := r.s.IterEncodedObjects(plumbing.TreeObject) + iter, err := r.Storer.IterEncodedObjects(plumbing.TreeObject) if err != nil { return nil, err } - return object.NewTreeIter(r.s, iter), nil + return object.NewTreeIter(r.Storer, iter), nil } // Blob returns a Blob with the given hash. If not found // plumbing.ErrObjectNotFound is returne func (r *Repository) Blob(h plumbing.Hash) (*object.Blob, error) { - return object.GetBlob(r.s, h) + return object.GetBlob(r.Storer, h) } // Blobs returns an unsorted BlobIter with all the blobs in the repository func (r *Repository) Blobs() (*object.BlobIter, error) { - iter, err := r.s.IterEncodedObjects(plumbing.BlobObject) + iter, err := r.Storer.IterEncodedObjects(plumbing.BlobObject) if err != nil { return nil, err } - return object.NewBlobIter(r.s, iter), nil + return object.NewBlobIter(r.Storer, iter), nil } // Tag returns a Tag with the given hash. If not found // plumbing.ErrObjectNotFound is returned func (r *Repository) Tag(h plumbing.Hash) (*object.Tag, error) { - return object.GetTag(r.s, h) + return object.GetTag(r.Storer, h) } // Tags returns a unsorted TagIter that can step through all of the annotated // tags in the repository. func (r *Repository) Tags() (*object.TagIter, error) { - iter, err := r.s.IterEncodedObjects(plumbing.TagObject) + iter, err := r.Storer.IterEncodedObjects(plumbing.TagObject) if err != nil { return nil, err } - return object.NewTagIter(r.s, iter), nil + return object.NewTagIter(r.Storer, iter), nil } // Object returns an Object with the given hash. If not found // plumbing.ErrObjectNotFound is returned func (r *Repository) Object(t plumbing.ObjectType, h plumbing.Hash) (object.Object, error) { - obj, err := r.s.EncodedObject(t, h) + obj, err := r.Storer.EncodedObject(t, h) if err != nil { if err == plumbing.ErrObjectNotFound { return nil, ErrObjectNotFound @@ -589,22 +590,22 @@ func (r *Repository) Object(t plumbing.ObjectType, h plumbing.Hash) (object.Obje return nil, err } - return object.DecodeObject(r.s, obj) + return object.DecodeObject(r.Storer, obj) } // Objects returns an unsorted BlobIter with all the objects in the repository func (r *Repository) Objects() (*object.ObjectIter, error) { - iter, err := r.s.IterEncodedObjects(plumbing.AnyObject) + iter, err := r.Storer.IterEncodedObjects(plumbing.AnyObject) if err != nil { return nil, err } - return object.NewObjectIter(r.s, iter), nil + return object.NewObjectIter(r.Storer, iter), nil } // Head returns the reference where HEAD is pointing to. func (r *Repository) Head() (*plumbing.Reference, error) { - return storer.ResolveReference(r.s, plumbing.HEAD) + return storer.ResolveReference(r.Storer, plumbing.HEAD) } // Reference returns the reference for a given reference name. If resolved is @@ -613,15 +614,15 @@ func (r *Repository) Reference(name plumbing.ReferenceName, resolved bool) ( *plumbing.Reference, error) { if resolved { - return storer.ResolveReference(r.s, name) + return storer.ResolveReference(r.Storer, name) } - return r.s.Reference(name) + return r.Storer.Reference(name) } // References returns an unsorted ReferenceIter for all references. func (r *Repository) References() (storer.ReferenceIter, error) { - return r.s.IterReferences() + return r.Storer.IterReferences() } // Worktree returns a worktree based on the given fs, if nil the default @@ -649,7 +650,7 @@ func (r *Repository) ResolveRevision(rev plumbing.Revision) (*plumbing.Hash, err for _, item := range items { switch item.(type) { case revision.Ref: - ref, err := storer.ResolveReference(r.s, plumbing.ReferenceName(item.(revision.Ref))) + ref, err := storer.ResolveReference(r.Storer, plumbing.ReferenceName(item.(revision.Ref))) if err != nil { return &plumbing.ZeroHash, err diff --git a/repository_test.go b/repository_test.go index 2d29cd3..1b5b345 100644 --- a/repository_test.go +++ b/repository_test.go @@ -494,7 +494,7 @@ func (s *RepositorySuite) TestPullSingleBranch(c *C) { branch, err = r.Reference("refs/remotes/foo/branch", false) c.Assert(err, NotNil) - storage := r.s.(*memory.Storage) + storage := r.Storer.(*memory.Storage) c.Assert(storage.Objects, HasLen, 28) } @@ -525,7 +525,7 @@ func (s *RepositorySuite) TestPullAdd(c *C) { c.Assert(err, IsNil) - storage := r.s.(*memory.Storage) + storage := r.Storer.(*memory.Storage) c.Assert(storage.Objects, HasLen, 31) branch, err := r.Reference("refs/heads/master", false) diff --git a/worktree.go b/worktree.go index 7b47650..58e008e 100644 --- a/worktree.go +++ b/worktree.go @@ -47,7 +47,7 @@ func (w *Worktree) Checkout(commit plumbing.Hash) error { return err } - return w.r.s.SetIndex(idx) + return w.r.Storer.SetIndex(idx) } func (w *Worktree) checkoutFile(f *object.File, idx *index.Index) error { @@ -97,7 +97,7 @@ func (w *Worktree) indexFile(f *object.File, idx *index.Index) error { } func (w *Worktree) Status() (Status, error) { - idx, err := w.r.s.Index() + idx, err := w.r.Storer.Index() if err != nil { return nil, err } diff --git a/worktree_test.go b/worktree_test.go index 1c393f7..8ca3d4f 100644 --- a/worktree_test.go +++ b/worktree_test.go @@ -21,7 +21,7 @@ var _ = Suite(&WorktreeSuite{}) func (s *WorktreeSuite) SetUpTest(c *C) { s.buildBasicRepository(c) // the index is removed if not the Repository will be not clean - c.Assert(s.Repository.s.SetIndex(&index.Index{Version: 2}), IsNil) + c.Assert(s.Repository.Storer.SetIndex(&index.Index{Version: 2}), IsNil) } func (s *WorktreeSuite) TestCheckout(c *C) { @@ -48,7 +48,7 @@ func (s *WorktreeSuite) TestCheckout(c *C) { c.Assert(err, IsNil) c.Assert(string(content), Equals, "Initial changelog\n") - idx, err := s.Repository.s.Index() + idx, err := s.Repository.Storer.Index() c.Assert(err, IsNil) c.Assert(idx.Entries, HasLen, 9) } @@ -66,7 +66,7 @@ func (s *WorktreeSuite) TestCheckoutIndexmemfs(c *C) { err = w.Checkout(h.Hash()) c.Assert(err, IsNil) - idx, err := s.Repository.s.Index() + idx, err := s.Repository.Storer.Index() c.Assert(err, IsNil) c.Assert(idx.Entries, HasLen, 9) c.Assert(idx.Entries[0].Hash.String(), Equals, "32858aad3c383ed1ff0a0f9bdf231d54a00c9e88") @@ -99,7 +99,7 @@ func (s *WorktreeSuite) TestCheckoutIndexOS(c *C) { err = w.Checkout(h.Hash()) c.Assert(err, IsNil) - idx, err := s.Repository.s.Index() + idx, err := s.Repository.Storer.Index() c.Assert(err, IsNil) c.Assert(idx.Entries, HasLen, 9) c.Assert(idx.Entries[0].Hash.String(), Equals, "32858aad3c383ed1ff0a0f9bdf231d54a00c9e88") @@ -136,7 +136,7 @@ func (s *WorktreeSuite) TestStatus(c *C) { } func (s *WorktreeSuite) TestStatusModified(c *C) { - c.Assert(s.Repository.s.SetIndex(&index.Index{Version: 2}), IsNil) + c.Assert(s.Repository.Storer.SetIndex(&index.Index{Version: 2}), IsNil) h, err := s.Repository.Head() c.Assert(err, IsNil) -- cgit