Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
3642936
remove some comments
mcuadros Dec 13, 2015
bef437a
idx writer/reader
mcuadros Dec 14, 2015
b32241e
Shut up ssh tests, they are annoying
alcortesm May 12, 2016
ef1878b
Add file scheme test to clients
alcortesm May 23, 2016
8b27a1d
Add dummy file client
alcortesm May 24, 2016
c8bdb70
Add test fot file client
alcortesm May 24, 2016
d6a0942
Make tests use fixture endpoint
alcortesm May 24, 2016
ad88eb2
add parser for packed-refs format
alcortesm May 24, 2016
59d77b1
add parser for packed-refs format
alcortesm May 24, 2016
b9d13a9
WIP adding dir.Refs() tests
alcortesm May 24, 2016
4af3090
Add test for fixture refs
alcortesm May 25, 2016
7ceea2e
refs parser for the refs directory
alcortesm May 25, 2016
c6f255f
Documentation
alcortesm May 25, 2016
8f8ab6a
Add Capabilities to file client
alcortesm May 25, 2016
b0abcfb
tgz.Exatract now accpets a path instead of a Reader
alcortesm May 25, 2016
f4ba246
Merge remote-tracking branch 'mcuadros/idx' into dir-remotes
alcortesm May 30, 2016
700d0bc
fix bug in idxfile fanout calculation
alcortesm May 30, 2016
8799836
remove dead code
alcortesm May 30, 2016
a9cbe73
packfile documentation
alcortesm May 30, 2016
c7e9984
clean packfile parser code
alcortesm May 30, 2016
84dd350
add core.Object.Content() and returns errors for core.ObjectStorage.I…
alcortesm May 30, 2016
bf295bd
add seekable storage
alcortesm May 30, 2016
79d1c9b
add dir repos to NewRepository
alcortesm May 31, 2016
ec5dc02
clean prints
alcortesm May 31, 2016
60cb1c4
Add dir client documentation to README
alcortesm Jun 2, 2016
1b6f227
Organize the README
alcortesm Jun 2, 2016
137fd9f
README
alcortesm Jun 3, 2016
265a977
Clean tgz package
alcortesm Jun 3, 2016
9d16acc
Clean temp dirs after tgz tests
alcortesm Jun 3, 2016
7e5de24
Gometalinter on gitdir
alcortesm Jun 3, 2016
41f66df
Clean pattern function
alcortesm Jun 3, 2016
d4d4dc8
metalinter tgz
alcortesm Jun 3, 2016
f782d0e
metalinter gitdir
alcortesm Jun 3, 2016
ab8619d
gitdir coverage and remove seekable packfile filedescriptor leak
alcortesm Jun 3, 2016
4ca1404
gitdir Idxfile tests and remove file descriptor leak
alcortesm Jun 3, 2016
d8a2047
gitdir Idxfile tests when no idx is found
alcortesm Jun 3, 2016
2b49f9c
clean storage/seekable/internal/index and some formats/idxfile API is…
alcortesm Jun 6, 2016
8d196fa
clean storage/seekable
alcortesm Jun 6, 2016
62240e9
clean formats/idx
alcortesm Jun 7, 2016
e84bbe6
turn packfile/doc.go into packfile/doc.txt
alcortesm Jun 7, 2016
b2ad04f
move formats/packfile/reader to decoder
alcortesm Jun 7, 2016
e27ff13
fix packfile decoder error names
alcortesm Jun 7, 2016
cc0ff0b
improve documentation
alcortesm Jun 7, 2016
0acdaa0
comment packfile decoder errors
alcortesm Jun 7, 2016
0c61a6a
comment public API (format/packfile)
alcortesm Jun 7, 2016
3f1ce54
remve duplicated code in packfile decoder test
alcortesm Jun 7, 2016
e1ad78b
move tracking_reader into an internal package and clean it
alcortesm Jun 7, 2016
9c8a8bb
use iota for packfile format
alcortesm Jun 8, 2016
0d5ec73
rename packfile parse.go to packfile object_at.go
alcortesm Jun 8, 2016
f456c3d
clean packfile deltas
alcortesm Jun 8, 2016
7af3fbd
fix delta header size bug
alcortesm Jun 8, 2016
523f46d
improve delta documentation
alcortesm Jun 8, 2016
7c904c8
clean packfile deltas
alcortesm Jun 8, 2016
09eae1d
clean packfiles deltas
alcortesm Jun 8, 2016
e6afb63
clean repository.go
alcortesm Jun 9, 2016
cec07c3
Remove go 1.5 from Travis CI
alcortesm Jun 10, 2016
53e7c81
change local repo scheme to local://
alcortesm Jun 10, 2016
62e9e62
change "local://" to "file://" as the local scheme
alcortesm Jun 13, 2016
d0f625e
fix broken indentation
alcortesm Jun 13, 2016
11ca988
shortens names of variables in short scopes
alcortesm Jun 13, 2016
df9366e
more shortening of variable names
alcortesm Jun 13, 2016
8a86df5
more shortening of variable names
alcortesm Jun 13, 2016
948fcb0
Rename git dir client to "file", as the scheme used for it
alcortesm Jun 13, 2016
0533ae8
Fix file format ctor name, now that the package name has change
alcortesm Jun 13, 2016
970d41e
Sortcut local repo constructor to not use remotes
alcortesm Jun 14, 2016
2f162c4
update README and fix some errors in it
alcortesm Jun 14, 2016
e1bf74d
remove file scheme client
alcortesm Jun 14, 2016
856a395
Local respositories has now a new ctor
alcortesm Jun 14, 2016
6672649
remove unused URL field form Repository
alcortesm Jun 14, 2016
7aaf777
move all git dir logic to seekable sotrage ctor
alcortesm Jun 14, 2016
e253e43
fix documentation
alcortesm Jun 14, 2016
61bde41
Make formats/file/dir an internal package to storage/seekable
alcortesm Jun 14, 2016
6d7c913
change package storage/seekable to storage/fs
alcortesm Jun 14, 2016
b4351ed
clean storage/fs
alcortesm Jun 15, 2016
d0e472d
overall storage/fs clean
alcortesm Jun 15, 2016
c7dd022
more cleaning
alcortesm Jun 17, 2016
2032159
some metalinter fixes
alcortesm Jun 17, 2016
b577302
Merge branch 'master' into local-is-not-a-client
alcortesm Jun 17, 2016
59f28e1
upgrade cshared to last changes
alcortesm Jun 17, 2016
59ae814
remove dead code
alcortesm Jun 17, 2016
f60a0bb
fix test error info
alcortesm Jun 17, 2016
fc0c74d
remove file scheme check from clients
alcortesm Jun 17, 2016
443787c
fix test error message
alcortesm Jun 17, 2016
22819f1
fix test error message
alcortesm Jun 17, 2016
aabec5f
fix error messages
alcortesm Jun 17, 2016
43c3d5d
style changes
alcortesm Jun 17, 2016
33f5cf9
fix comments everywhere
alcortesm Jun 17, 2016
e75c9c8
style changes
alcortesm Jun 17, 2016
a939c15
style changes
alcortesm Jun 17, 2016
2a8dfbd
scaffolding and tests for local packfiles without ifx files
alcortesm Jun 23, 2016
5f39e0d
outsource index building from packfile to the packfile decoder
alcortesm Jun 24, 2016
75ade52
refactor packfile header reading into a new function
alcortesm Jun 24, 2016
80193dd
move code to generate index from packfile back to index package
alcortesm Jun 24, 2016
fc6d0ee
add header parsing
alcortesm Jun 24, 2016
b1a12ff
fix documentation errata
alcortesm Jun 24, 2016
0485468
add undeltified and OFS delta support for index building from the pac…
alcortesm Jun 24, 2016
0380bde
add tests for packfile with ref-deltas
alcortesm Jun 27, 2016
e2c2a61
support for packfiles with ref-deltas and no idx
alcortesm Jun 27, 2016
a54f3f3
Merge branch 'master' into local-is-not-a-client
alcortesm Jun 27, 2016
8b86f2f
refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
e3353c1
refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
0c78926
refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
6a5bc18
refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
6e85d44
refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
76483ef
WIP refactor packfile format parser to reuse code
alcortesm Jun 27, 2016
ee60829
refactor packfile format parser to reuse code
alcortesm Jun 28, 2016
04dcd83
remove prints from tests
alcortesm Jun 28, 2016
9219a28
remove prints from tests
alcortesm Jun 28, 2016
0bb0c10
refactor packfile.core into packfile.parser
alcortesm Jun 28, 2016
80c10fe
rename packfile reader to something that shows it is a recaller
alcortesm Jun 29, 2016
ad99b23
rename cannot recall error
alcortesm Jun 29, 2016
46e4518
rename packfile.Reader to packfile.ReadRecaller and document
alcortesm Jun 29, 2016
eefd43a
speed up test by using StreamReader instead of SeekableReader when po…
alcortesm Jun 29, 2016
ce6f483
clean packfile StreamReader
alcortesm Jun 29, 2016
2b51933
stream_reader tests
alcortesm Jun 29, 2016
216e5c9
refactor packfile.StreamReader into packfile.StreamReadRecaller
alcortesm Jun 29, 2016
3acabeb
refactor packfile.SeekableReader into packfile.SeekableReadRecaller a…
alcortesm Jun 29, 2016
bce1795
generalize packfile.StreamReadRecaller test to all packfile.ReadRecal…
alcortesm Jun 29, 2016
467a8af
speed up storage/fs tests
alcortesm Jun 29, 2016
a2745dc
speed up tests in . by loading packfiles in memory
alcortesm Jun 29, 2016
ccd1b8a
speed up repository tests by using and smaller fixture
alcortesm Jun 30, 2016
2c5cb90
restore doc.go files
alcortesm Jun 30, 2016
d692bec
rename packfile.ReadRecaller implementations to shorter names
alcortesm Jun 30, 2016
a776092
update comments to type changes
alcortesm Jun 30, 2016
43a3fce
packfile.Parser test (WIP)
alcortesm Jun 30, 2016
64b4b60
packfile.Parser tests and add ForgetAll() to packfile.ReadRecaller
alcortesm Jun 30, 2016
5fafd41
add test for packfile.ReadRecaller.ForgetAll()
alcortesm Jun 30, 2016
4a73a24
clarify seekable being able to recallByOffset forgetted objects
alcortesm Jun 30, 2016
2ea588b
use better names for internal maps
alcortesm Jun 30, 2016
9dc0634
metalinter packfile package
alcortesm Jun 30, 2016
1df7d46
speed up some tests
alcortesm Jun 30, 2016
758f000
documentation fixes
alcortesm Jun 30, 2016
457a8f3
change storage.fs package name to storage.proxy to avoid confusion wi…
alcortesm Jun 30, 2016
dc7298f
New fs package and os transparent implementation
alcortesm Jun 30, 2016
6d04525
add fs to gitdir and proxy.store
alcortesm Jul 1, 2016
14e5817
reduce fs interface for easier implementation
alcortesm Jul 1, 2016
3a58802
remove garbage dirs from tgz tests
alcortesm Jul 1, 2016
4c5bb72
change file name gitdir/dir.go to gitdir/gitdir.go
alcortesm Jul 1, 2016
4bf9c31
fs.OS tests
alcortesm Jul 1, 2016
7e88430
metalinter utils/fs
alcortesm Jul 1, 2016
f17ed0f
add NewRepositoryFromFS documentation to README
alcortesm Jul 4, 2016
5c0059b
Readability fixes to README
alcortesm Jul 4, 2016
a2f6e58
move tgz to an external dependency
alcortesm Jul 4, 2016
5391c67
move filesystem impl. example to example dir
alcortesm Jul 4, 2016
c5b10d9
rename proxy/store.go to proxy/storage.go for coherence with memory/s…
alcortesm Jul 4, 2016
9924a98
rename proxy package to seekable
alcortesm Jul 4, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ language: go

go:
- 1.4
- 1.5
- 1.6
- tip

Expand Down
60 changes: 59 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ if err := r.PullDefault(); err != nil {
panic(err)
}

iter := r.Commits()
iter, err := r.Commits()
if err != nil {
panic(err)
}
defer iter.Close()

for {
Expand Down Expand Up @@ -112,6 +115,61 @@ if err != nil {
fmt.Println(commit)
```

Creating a repository from an ordinary local git directory (that has been
previously prepared by running `git gc` on it).

```go
// Download any git repository and prepare it as as follows:
//
// $ git clone https://github.com/src-d/go-git /tmp/go-git
// $ pushd /tmp/go-git ; git gc ; popd
//
// Then, create a go-git repository from the local content
// and print its commits as follows:

package main

import (
"fmt"
"io"

"gopkg.in/src-d/go-git.v3"
"gopkg.in/src-d/go-git.v3/utils/fs"
)

func main() {
fs := fs.NewOS() // a simple proxy for the local host filesystem
path := "/tmp/go-git/.git"

repo, err := git.NewRepositoryFromFS(fs, path)
if err != nil {
panic(err)
}

iter, err := repo.Commits()
if err != nil {
panic(err)
}
defer iter.Close()

for {
commit, err := iter.Next()
if err != nil {
if err == io.EOF {
break
}
panic(err)
}

fmt.Println(commit)
}
}
```

Implementing your own filesystem will let you access repositories stored on
remote services (e.g. amazon S3), see the
[examples](https://github.com/src-d/go-git/tree/master/examples/fs_implementation/)
directory for a simple filesystem implementation and usage.

Wrapping
--------
Expand Down
53 changes: 28 additions & 25 deletions blame_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package git

import (
"bytes"
"io/ioutil"
"os"

"gopkg.in/src-d/go-git.v3/core"
Expand All @@ -19,24 +21,23 @@ var _ = Suite(&BlameCommon{})
func (s *BlameCommon) SetUpSuite(c *C) {
s.repos = make(map[string]*Repository, 0)
for _, fixRepo := range fixtureRepos {
repo := NewPlainRepository()
repo.URL = fixRepo.url
r := NewPlainRepository()

d, err := os.Open(fixRepo.packfile)
f, err := os.Open(fixRepo.packfile)
c.Assert(err, IsNil)

r := packfile.NewReader(d)
// TODO: how to know the format of a pack file ahead of time?
// Some info at:
// https://codewords.recurse.com/issues/three/unpacking-git-packfiles
r.Format = packfile.OFSDeltaFormat
data, err := ioutil.ReadAll(f)
c.Assert(err, IsNil)

stream := packfile.NewStream(bytes.NewReader(data))

_, err = r.Read(repo.Storage)
d := packfile.NewDecoder(stream)
err = d.Decode(r.Storage)
c.Assert(err, IsNil)

c.Assert(d.Close(), IsNil)
c.Assert(f.Close(), IsNil)

s.repos[fixRepo.url] = repo
s.repos[fixRepo.url] = r
}
}

Expand All @@ -48,22 +49,22 @@ type blameTest struct {
}

func (s *BlameCommon) mockBlame(t blameTest, c *C) (blame *Blame) {
repo, ok := s.repos[t.repo]
r, ok := s.repos[t.repo]
c.Assert(ok, Equals, true)

commit, err := repo.Commit(core.NewHash(t.rev))
c.Assert(err, IsNil, Commentf("%v: repo=%s, rev=%s", err, repo, t.rev))
commit, err := r.Commit(core.NewHash(t.rev))
c.Assert(err, IsNil, Commentf("%v: repo=%s, rev=%s", err, r, t.rev))

file, err := commit.File(t.path)
f, err := commit.File(t.path)
c.Assert(err, IsNil)
lines, err := file.Lines()
lines, err := f.Lines()
c.Assert(err, IsNil)
c.Assert(len(t.blames), Equals, len(lines), Commentf(
"repo=%s, path=%s, rev=%s: the number of lines in the file and the number of expected blames differ (len(blames)=%d, len(lines)=%d)\nblames=%#q\nlines=%#q", t.repo, t.path, t.rev, len(t.blames), len(lines), t.blames, lines))

blamedLines := make([]*line, 0, len(t.blames))
for i := range t.blames {
commit, err := repo.Commit(core.NewHash(t.blames[i]))
commit, err := r.Commit(core.NewHash(t.blames[i]))
c.Assert(err, IsNil)
l := &line{
author: commit.Author.Email,
Expand All @@ -82,17 +83,17 @@ func (s *BlameCommon) mockBlame(t blameTest, c *C) (blame *Blame) {
// run a blame on all the suite's tests
func (s *BlameCommon) TestBlame(c *C) {
for _, t := range blameTests {
expected := s.mockBlame(t, c)
exp := s.mockBlame(t, c)

repo, ok := s.repos[t.repo]
r, ok := s.repos[t.repo]
c.Assert(ok, Equals, true)

commit, err := repo.Commit(core.NewHash(t.rev))
commit, err := r.Commit(core.NewHash(t.rev))
c.Assert(err, IsNil)

obtained, err := commit.Blame(t.path)
obt, err := commit.Blame(t.path)
c.Assert(err, IsNil)
c.Assert(obtained, DeepEquals, expected)
c.Assert(obt, DeepEquals, exp)
}
}

Expand All @@ -105,16 +106,18 @@ func repeat(s string, n int) []string {
for i := 0; i < n; i++ {
r = append(r, s)
}

return r
}

// utility function to concat slices
func concat(vargs ...[]string) []string {
var result []string
var r []string
for _, ss := range vargs {
result = append(result, ss...)
r = append(r, ss...)
}
return result

return r
}

var blameTests = [...]blameTest{
Expand Down
4 changes: 2 additions & 2 deletions clients/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ func NewGitUploadPackService(repoURL string) (common.GitUploadPackService, error
if err != nil {
return nil, fmt.Errorf("invalid url %q", repoURL)
}
service, ok := KnownProtocols[u.Scheme]
s, ok := KnownProtocols[u.Scheme]
if !ok {
return nil, fmt.Errorf("unsupported scheme %q", u.Scheme)
}

return service, nil
return s, nil
}
6 changes: 1 addition & 5 deletions clients/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -236,11 +236,7 @@ func (r *GitUploadPackInfo) decodeHeaderLine(line string) {
}

func (r *GitUploadPackInfo) isValidLine(line string) bool {
if line[0] == '#' {
return false
}

return true
return line[0] != '#'
}

func (r *GitUploadPackInfo) readLine(line string) {
Expand Down
35 changes: 27 additions & 8 deletions clients/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,41 @@ package clients
import (
"fmt"
"io"
"os"
"testing"

. "gopkg.in/check.v1"
"gopkg.in/src-d/go-git.v3/clients/common"

"github.com/alcortesm/tgz"
. "gopkg.in/check.v1"
)

func Test(t *testing.T) { TestingT(t) }

type SuiteCommon struct{}
type SuiteCommon struct {
dirFixturePath string
}

var _ = Suite(&SuiteCommon{})

const fixtureTGZ = "../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz"

func (s *SuiteCommon) SetUpSuite(c *C) {
var err error
s.dirFixturePath, err = tgz.Extract(fixtureTGZ)
c.Assert(err, IsNil)
}

func (s *SuiteCommon) TearDownSuite(c *C) {
err := os.RemoveAll(s.dirFixturePath)
c.Assert(err, IsNil)
}

func (s *SuiteCommon) TestNewGitUploadPackService(c *C) {
var tests = [...]struct {
input string
err bool
expected string
input string
err bool
exp string
}{
{"://example.com", true, "<nil>"},
{"badscheme://github.com/src-d/go-git", true, "<nil>"},
Expand All @@ -30,8 +48,10 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) {

for i, t := range tests {
output, err := NewGitUploadPackService(t.input)
c.Assert(err != nil, Equals, t.err, Commentf("%d) %q: wrong error value", i, t.input))
c.Assert(typeAsString(output), Equals, t.expected, Commentf("%d) %q: wrong type", i, t.input))
c.Assert(err != nil, Equals, t.err,
Commentf("%d) %q: wrong error value (was: %s)", i, t.input, err))
c.Assert(typeAsString(output), Equals, t.exp,
Commentf("%d) %q: wrong type", i, t.input))
}
}

Expand Down Expand Up @@ -70,7 +90,6 @@ func (s *SuiteCommon) TestInstallProtocol(c *C) {

for i, t := range tests {
if t.panic {
fmt.Println(t.service == nil)
c.Assert(func() { InstallProtocol(t.scheme, t.service) }, PanicMatches, `nil service`)
continue
}
Expand Down
2 changes: 2 additions & 0 deletions clients/ssh/git_upload_pack_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// +build ssh

package ssh

import (
Expand Down
37 changes: 24 additions & 13 deletions common_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package git

import (
"bytes"
"io"
"io/ioutil"
"os"
"testing"

Expand Down Expand Up @@ -29,21 +31,22 @@ func (s *MockGitUploadPackService) ConnectWithAuth(url common.Endpoint, auth com
}

func (s *MockGitUploadPackService) Info() (*common.GitUploadPackInfo, error) {
hash := core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")
h := core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")

cap := common.NewCapabilities()
cap.Decode("6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/2:2.4.8~dbussink-fix-enterprise-tokens-compilation-1167-gc7006cf")
c := common.NewCapabilities()
c.Decode("6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/2:2.4.8~dbussink-fix-enterprise-tokens-compilation-1167-gc7006cf")

return &common.GitUploadPackInfo{
Capabilities: cap,
Head: hash,
Refs: map[string]core.Hash{"refs/heads/master": hash},
Capabilities: c,
Head: h,
Refs: map[string]core.Hash{"refs/heads/master": h},
}, nil
}

func (s *MockGitUploadPackService) Fetch(*common.GitUploadPackRequest) (io.ReadCloser, error) {
var err error
s.RC, err = os.Open("formats/packfile/fixtures/git-fixture.ref-delta")

return s.RC, err
}

Expand All @@ -65,20 +68,28 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository {
if _, existing := repos[fixture.url]; existing {
continue
}
repos[fixture.url] = NewPlainRepository()

d, err := os.Open(fixture.packfile)
c.Assert(err, IsNil)
comment := Commentf("fixture packfile: %q", fixture.packfile)

r := packfile.NewReader(d)
r.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format
repos[fixture.url] = NewPlainRepository()

_, err = r.Read(repos[fixture.url].Storage)
f, err := os.Open(fixture.packfile)
c.Assert(err, IsNil, comment)

// increase memory consumption to speed up tests
data, err := ioutil.ReadAll(f)
c.Assert(err, IsNil)
memStream := bytes.NewReader(data)
r := packfile.NewStream(memStream)

d := packfile.NewDecoder(r)
err = d.Decode(repos[fixture.url].Storage)
c.Assert(err, IsNil, comment)

c.Assert(d.Close(), IsNil)
c.Assert(f.Close(), IsNil, comment)
}
}

return repos
}

Expand Down
4 changes: 2 additions & 2 deletions core/object.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,16 @@ type Object interface {
SetType(ObjectType)
Size() int64
SetSize(int64)
Content() []byte
Reader() (ObjectReader, error)
Writer() (ObjectWriter, error)
}

// ObjectStorage generic storage of objects
type ObjectStorage interface {
New() (Object, error)
Set(Object) (Hash, error)
Get(Hash) (Object, error)
Iter(ObjectType) ObjectIter
Iter(ObjectType) (ObjectIter, error)
}

// ObjectType internal object type's
Expand Down
Loading