From 711b703b572e07d3d0437eae4662419b5c392a6b Mon Sep 17 00:00:00 2001 From: Chris Gavin Date: Fri, 28 Aug 2020 10:32:28 +0100 Subject: git: remote, Fix deleting references when force pushing. --- remote_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'remote_test.go') diff --git a/remote_test.go b/remote_test.go index ce46390..c6ea9ea 100644 --- a/remote_test.go +++ b/remote_test.go @@ -558,6 +558,31 @@ func (s *RemoteSuite) TestPushDeleteReference(c *C) { c.Assert(err, Equals, plumbing.ErrReferenceNotFound) } +func (s *RemoteSuite) TestForcePushDeleteReference(c *C) { + fs := fixtures.Basic().One().DotGit() + sto := filesystem.NewStorage(fs, cache.NewObjectLRUDefault()) + + r, err := PlainClone(c.MkDir(), true, &CloneOptions{ + URL: fs.Root(), + }) + c.Assert(err, IsNil) + + remote, err := r.Remote(DefaultRemoteName) + c.Assert(err, IsNil) + + err = remote.Push(&PushOptions{ + RefSpecs: []config.RefSpec{":refs/heads/branch"}, + Force: true, + }) + c.Assert(err, IsNil) + + _, err = sto.Reference(plumbing.ReferenceName("refs/heads/branch")) + c.Assert(err, Equals, plumbing.ErrReferenceNotFound) + + _, err = r.Storer.Reference(plumbing.ReferenceName("refs/heads/branch")) + c.Assert(err, Equals, plumbing.ErrReferenceNotFound) +} + func (s *RemoteSuite) TestPushRejectNonFastForward(c *C) { fs := fixtures.Basic().One().DotGit() server := filesystem.NewStorage(fs, cache.NewObjectLRUDefault()) -- cgit