Skip to content

Commit b91bebf

Browse files
authored
update go-git api (#107)
* now opening a non-existing repository is an error, but it is possible to open an existing, empty repository.
1 parent 7179f9f commit b91bebf

17 files changed

+32
-85
lines changed

Diff for: cmd/gitql/query.go

-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ type CmdQuery struct {
1010
}
1111

1212
func (c *CmdQuery) Execute(args []string) error {
13-
if err := c.validate(); err != nil {
14-
return err
15-
}
16-
1713
if err := c.buildDatabase(); err != nil {
1814
return err
1915
}

Diff for: cmd/gitql/query_base.go

+2-52
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"errors"
54
"io"
65
"os"
76
"path/filepath"
@@ -11,7 +10,7 @@ import (
1110
"github.com/gitql/gitql/internal/format"
1211
"github.com/gitql/gitql/sql"
1312

14-
"gopkg.in/src-d/go-git.v4"
13+
"srcd.works/go-git.v4"
1514
)
1615

1716
type cmdQueryBase struct {
@@ -23,37 +22,15 @@ type cmdQueryBase struct {
2322
e *gitql.Engine
2423
}
2524

26-
func (c *cmdQueryBase) validate() error {
27-
var err error
28-
c.Path, err = findDotGitFolder(c.Path)
29-
return err
30-
}
31-
3225
func (c *cmdQueryBase) buildDatabase() error {
3326
c.print("opening %q repository...\n", c.Path)
3427

3528
var err error
36-
r, err := git.NewFilesystemRepository(c.Path)
37-
if err != nil {
38-
return err
39-
}
40-
41-
empty, err := r.IsEmpty()
42-
if err != nil {
43-
return err
44-
}
45-
46-
if empty {
47-
return errors.New("error: the repository is empty")
48-
}
49-
50-
head, err := r.Head()
29+
r, err := git.PlainOpen(c.Path)
5130
if err != nil {
5231
return err
5332
}
5433

55-
c.print("current HEAD %q\n", head.Hash())
56-
5734
name := filepath.Base(filepath.Join(c.Path, ".."))
5835

5936
c.db = gitqlgit.NewDatabase(name, r)
@@ -110,30 +87,3 @@ func (c *cmdQueryBase) printQuery(schema sql.Schema, iter sql.RowIter, formatId
11087

11188
return f.Close()
11289
}
113-
114-
func findDotGitFolder(path string) (string, error) {
115-
if path == "" {
116-
var err error
117-
path, err = os.Getwd()
118-
if err != nil {
119-
return "", err
120-
}
121-
}
122-
123-
git := filepath.Join(path, ".git")
124-
_, err := os.Stat(git)
125-
if err == nil {
126-
return git, nil
127-
}
128-
129-
if !os.IsNotExist(err) {
130-
return "", err
131-
}
132-
133-
next := filepath.Join(path, "..")
134-
if next == path {
135-
return "", errors.New("unable to find a git repository")
136-
}
137-
138-
return findDotGitFolder(next)
139-
}

Diff for: cmd/gitql/shell.go

-4
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ type CmdShell struct {
1818
}
1919

2020
func (c *CmdShell) Execute(args []string) error {
21-
if err := c.validate(); err != nil {
22-
return err
23-
}
24-
2521
if err := c.buildDatabase(); err != nil {
2622
return err
2723
}

Diff for: git/blobs.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
7-
"gopkg.in/src-d/go-git.v4/plumbing/object"
6+
"srcd.works/go-git.v4"
7+
"srcd.works/go-git.v4/plumbing/object"
88
)
99

1010
type blobsTable struct {

Diff for: git/blobs_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestBlobsTable_Name(t *testing.T) {

Diff for: git/commits.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
7-
"gopkg.in/src-d/go-git.v4/plumbing/object"
6+
"srcd.works/go-git.v4"
7+
"srcd.works/go-git.v4/plumbing/object"
88
)
99

1010
type commitsTable struct {

Diff for: git/commits_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestCommitsTable_Name(t *testing.T) {

Diff for: git/database.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
6+
"srcd.works/go-git.v4"
77
)
88

99
const (

Diff for: git/database_test.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import (
66

77
"github.com/gitql/gitql/sql"
88

9+
"github.com/src-d/go-git-fixtures"
910
"github.com/stretchr/testify/assert"
10-
"gopkg.in/src-d/go-git.v4"
11-
"gopkg.in/src-d/go-git.v4/fixtures"
11+
"srcd.works/go-billy.v1/memfs"
12+
"srcd.works/go-git.v4"
13+
"srcd.works/go-git.v4/storage/filesystem"
1214
)
1315

1416
func init() {
15-
fixtures.RootFolder = "../../../../gopkg.in/src-d/go-git.v4/fixtures/"
17+
fixtures.RootFolder = "../../../../github.com/src-d/go-git-fixtures/"
1618
}
1719

1820
const (
@@ -56,8 +58,11 @@ func TestDatabase_Name(t *testing.T) {
5658
func getDB(assert *assert.Assertions, fixture *fixtures.Fixture,
5759
name string) sql.Database {
5860

59-
r, err := git.NewFilesystemRepository(fixture.DotGit().Base())
60-
assert.Nil(err)
61+
s, err := filesystem.NewStorage(fixture.DotGit())
62+
assert.NoError(err)
63+
64+
r, err := git.Open(s, memfs.New())
65+
assert.NoError(err)
6166

6267
db := NewDatabase(name, r)
6368
assert.NotNil(db)

Diff for: git/objects.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
7-
"gopkg.in/src-d/go-git.v4/plumbing/object"
6+
"srcd.works/go-git.v4"
7+
"srcd.works/go-git.v4/plumbing/object"
88
)
99

1010
type objectsTable struct {

Diff for: git/objects_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestObjectsTable_Name(t *testing.T) {

Diff for: git/references.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
7-
"gopkg.in/src-d/go-git.v4/plumbing"
8-
"gopkg.in/src-d/go-git.v4/plumbing/storer"
6+
"srcd.works/go-git.v4"
7+
"srcd.works/go-git.v4/plumbing"
8+
"srcd.works/go-git.v4/plumbing/storer"
99
)
1010

1111
type referencesTable struct {

Diff for: git/references_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestReferencesTable_Name(t *testing.T) {

Diff for: git/tags.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package git
33
import (
44
"github.com/gitql/gitql/sql"
55

6-
"gopkg.in/src-d/go-git.v4"
7-
"gopkg.in/src-d/go-git.v4/plumbing/object"
6+
"srcd.works/go-git.v4"
7+
"srcd.works/go-git.v4/plumbing/object"
88
)
99

1010
type tagsTable struct {

Diff for: git/tags_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestTagsTable_Name(t *testing.T) {

Diff for: git/tree_entries.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8-
"gopkg.in/src-d/go-git.v4"
9-
"gopkg.in/src-d/go-git.v4/plumbing/object"
8+
"srcd.works/go-git.v4"
9+
"srcd.works/go-git.v4/plumbing/object"
1010
)
1111

1212
type treeEntriesTable struct {

Diff for: git/tree_entries_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55

66
"github.com/gitql/gitql/sql"
77

8+
"github.com/src-d/go-git-fixtures"
89
"github.com/stretchr/testify/assert"
9-
"gopkg.in/src-d/go-git.v4/fixtures"
1010
)
1111

1212
func TestTreeEntriesTable_Name(t *testing.T) {

0 commit comments

Comments
 (0)