func pushHashes(sess transport.SendPackSession, sto storer.EncodedObjectStorer, req *packp.ReferenceUpdateRequest, hs []plumbing.Hash) (*packp.ReportStatus, error) { rd, wr := io.Pipe() req.Packfile = rd done := make(chan error) go func() { e := packfile.NewEncoder(wr, sto, false) if _, err := e.Encode(hs); err != nil { done <- wr.CloseWithError(err) return } done <- wr.Close() }() rs, err := sess.SendPack(req) if err != nil { return nil, err } if err := <-done; err != nil { return nil, err } return rs, nil }
func (s *SendPackSuite) emptyPackfile() io.ReadCloser { var buf bytes.Buffer e := packfile.NewEncoder(&buf, memory.NewStorage(), false) _, err := e.Encode(nil) if err != nil { panic(err) } return ioutil.NopCloser(&buf) }