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

Commit 0c2618b

Browse files
authored
Merge pull request #794 from jfontan/fix/checkclose
Use CheckClose with named returns and fix tests
2 parents 160e6d5 + 6e07548 commit 0c2618b

File tree

16 files changed

+59
-39
lines changed

16 files changed

+59
-39
lines changed

plumbing/format/packfile/common.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ func UpdateObjectStorage(s storer.EncodedObjectStorer, packfile io.Reader) error
4040
return err
4141
}
4242

43-
func writePackfileToObjectStorage(sw storer.PackfileWriter, packfile io.Reader) error {
44-
var err error
43+
func writePackfileToObjectStorage(sw storer.PackfileWriter, packfile io.Reader) (err error) {
4544
w, err := sw.PackfileWriter()
4645
if err != nil {
4746
return err

plumbing/format/packfile/scanner.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,15 @@ func (s *Scanner) NextObject(w io.Writer) (written int64, crc32 uint32, err erro
279279
// from it zlib stream in an object entry in the packfile.
280280
func (s *Scanner) copyObject(w io.Writer) (n int64, err error) {
281281
if s.zr == nil {
282-
zr, err := zlib.NewReader(s.r)
282+
var zr io.ReadCloser
283+
zr, err = zlib.NewReader(s.r)
283284
if err != nil {
284285
return 0, fmt.Errorf("zlib initialization error: %s", err)
285286
}
286287

287288
s.zr = zr.(readerResetter)
288289
} else {
289-
if err := s.zr.Reset(s.r, nil); err != nil {
290+
if err = s.zr.Reset(s.r, nil); err != nil {
290291
return 0, fmt.Errorf("zlib reset error: %s", err)
291292
}
292293
}

plumbing/object/blob.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (b *Blob) Decode(o plumbing.EncodedObject) error {
6767
}
6868

6969
// Encode transforms a Blob into a plumbing.EncodedObject.
70-
func (b *Blob) Encode(o plumbing.EncodedObject) error {
70+
func (b *Blob) Encode(o plumbing.EncodedObject) (err error) {
7171
o.SetType(plumbing.BlobObject)
7272

7373
w, err := o.Writer()

plumbing/object/commit.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func (b *Commit) Encode(o plumbing.EncodedObject) error {
226226
return b.encode(o, true)
227227
}
228228

229-
func (b *Commit) encode(o plumbing.EncodedObject, includeSig bool) error {
229+
func (b *Commit) encode(o plumbing.EncodedObject, includeSig bool) (err error) {
230230
o.SetType(plumbing.CommitObject)
231231
w, err := o.Writer()
232232
if err != nil {

plumbing/object/file.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (f *File) Contents() (content string, err error) {
4444
}
4545

4646
// IsBinary returns if the file is binary or not
47-
func (f *File) IsBinary() (bool, error) {
47+
func (f *File) IsBinary() (bin bool, err error) {
4848
reader, err := f.Reader()
4949
if err != nil {
5050
return false, err

plumbing/object/tag.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ func (t *Tag) Decode(o plumbing.EncodedObject) (err error) {
9595

9696
r := bufio.NewReader(reader)
9797
for {
98-
line, err := r.ReadBytes('\n')
98+
var line []byte
99+
line, err = r.ReadBytes('\n')
99100
if err != nil && err != io.EOF {
100101
return err
101102
}
@@ -168,7 +169,7 @@ func (t *Tag) Encode(o plumbing.EncodedObject) error {
168169
return t.encode(o, true)
169170
}
170171

171-
func (t *Tag) encode(o plumbing.EncodedObject, includeSig bool) error {
172+
func (t *Tag) encode(o plumbing.EncodedObject, includeSig bool) (err error) {
172173
o.SetType(plumbing.TagObject)
173174
w, err := o.Writer()
174175
if err != nil {

plumbing/object/tree.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ func (t *Tree) Decode(o plumbing.EncodedObject) (err error) {
233233
}
234234

235235
// Encode transforms a Tree into a plumbing.EncodedObject.
236-
func (t *Tree) Encode(o plumbing.EncodedObject) error {
236+
func (t *Tree) Encode(o plumbing.EncodedObject) (err error) {
237237
o.SetType(plumbing.TreeObject)
238238
w, err := o.Writer()
239239
if err != nil {
@@ -242,7 +242,7 @@ func (t *Tree) Encode(o plumbing.EncodedObject) error {
242242

243243
defer ioutil.CheckClose(w, &err)
244244
for _, entry := range t.Entries {
245-
if _, err := fmt.Fprintf(w, "%o %s", entry.Mode, entry.Name); err != nil {
245+
if _, err = fmt.Fprintf(w, "%o %s", entry.Mode, entry.Name); err != nil {
246246
return err
247247
}
248248

plumbing/transport/http/common.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func applyHeadersToRequest(req *http.Request, content *bytes.Buffer, host string
3131

3232
const infoRefsPath = "/info/refs"
3333

34-
func advertisedReferences(s *session, serviceName string) (*packp.AdvRefs, error) {
34+
func advertisedReferences(s *session, serviceName string) (ref *packp.AdvRefs, err error) {
3535
url := fmt.Sprintf(
3636
"%s%s?service=%s",
3737
s.endpoint.String(), infoRefsPath, serviceName,
@@ -52,12 +52,12 @@ func advertisedReferences(s *session, serviceName string) (*packp.AdvRefs, error
5252
s.ModifyEndpointIfRedirect(res)
5353
defer ioutil.CheckClose(res.Body, &err)
5454

55-
if err := NewErr(res); err != nil {
55+
if err = NewErr(res); err != nil {
5656
return nil, err
5757
}
5858

5959
ar := packp.NewAdvRefs()
60-
if err := ar.Decode(res.Body); err != nil {
60+
if err = ar.Decode(res.Body); err != nil {
6161
if err == packp.ErrEmptyAdvRefs {
6262
err = transport.ErrEmptyRemoteRepository
6363
}

plumbing/transport/test/receive_pack.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"context"
99
"io"
1010
"io/ioutil"
11+
"os"
12+
"path/filepath"
1113

1214
"gopkg.in/src-d/go-git.v4/plumbing"
1315
"gopkg.in/src-d/go-git.v4/plumbing/format/packfile"
@@ -225,6 +227,25 @@ func (s *ReceivePackSuite) receivePackNoCheck(c *C, ep *transport.Endpoint,
225227
ep.String(), url, callAdvertisedReferences,
226228
)
227229

230+
// Set write permissions to endpoint directory files. By default
231+
// fixtures are generated with read only permissions, this casuses
232+
// errors deleting or modifying files.
233+
rootPath := ep.Path
234+
println("STAT", rootPath)
235+
stat, err := os.Stat(ep.Path)
236+
237+
if rootPath != "" && err == nil && stat.IsDir() {
238+
objectPath := filepath.Join(rootPath, "objects/pack")
239+
files, err := ioutil.ReadDir(objectPath)
240+
c.Assert(err, IsNil)
241+
242+
for _, file := range files {
243+
path := filepath.Join(objectPath, file.Name())
244+
err = os.Chmod(path, 0644)
245+
c.Assert(err, IsNil)
246+
}
247+
}
248+
228249
r, err := s.Client.NewReceivePackSession(ep, s.EmptyAuth)
229250
c.Assert(err, IsNil, comment)
230251
defer func() { c.Assert(r.Close(), IsNil, comment) }()

remote.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func (r *Remote) Push(o *PushOptions) error {
7373
// The provided Context must be non-nil. If the context expires before the
7474
// operation is complete, an error is returned. The context only affects to the
7575
// transport operations.
76-
func (r *Remote) PushContext(ctx context.Context, o *PushOptions) error {
76+
func (r *Remote) PushContext(ctx context.Context, o *PushOptions) (err error) {
7777
if err := o.Validate(); err != nil {
7878
return err
7979
}
@@ -243,12 +243,12 @@ func (r *Remote) Fetch(o *FetchOptions) error {
243243
return r.FetchContext(context.Background(), o)
244244
}
245245

246-
func (r *Remote) fetch(ctx context.Context, o *FetchOptions) (storer.ReferenceStorer, error) {
246+
func (r *Remote) fetch(ctx context.Context, o *FetchOptions) (sto storer.ReferenceStorer, err error) {
247247
if o.RemoteName == "" {
248248
o.RemoteName = r.c.Name
249249
}
250250

251-
if err := o.Validate(); err != nil {
251+
if err = o.Validate(); err != nil {
252252
return nil, err
253253
}
254254

@@ -295,7 +295,7 @@ func (r *Remote) fetch(ctx context.Context, o *FetchOptions) (storer.ReferenceSt
295295
return nil, err
296296
}
297297

298-
if err := r.fetchPack(ctx, o, s, req); err != nil {
298+
if err = r.fetchPack(ctx, o, s, req); err != nil {
299299
return nil, err
300300
}
301301
}
@@ -354,7 +354,7 @@ func (r *Remote) fetchPack(ctx context.Context, o *FetchOptions, s transport.Upl
354354

355355
defer ioutil.CheckClose(reader, &err)
356356

357-
if err := r.updateShallow(o, reader); err != nil {
357+
if err = r.updateShallow(o, reader); err != nil {
358358
return err
359359
}
360360

@@ -872,7 +872,7 @@ func (r *Remote) buildFetchedTags(refs memory.ReferenceStorage) (updated bool, e
872872
}
873873

874874
// List the references on the remote repository.
875-
func (r *Remote) List(o *ListOptions) ([]*plumbing.Reference, error) {
875+
func (r *Remote) List(o *ListOptions) (rfs []*plumbing.Reference, err error) {
876876
s, err := newUploadPackSession(r.c.URLs[0], o.Auth)
877877
if err != nil {
878878
return nil, err

0 commit comments

Comments
 (0)