+11
-2
knotserver/git/git.go
+11
-2
knotserver/git/git.go
···
128
128
commits := []*object.Commit{}
129
129
130
130
output, err := g.revList(
131
+
g.h.String(),
131
132
fmt.Sprintf("--skip=%d", offset),
132
133
fmt.Sprintf("--max-count=%d", limit),
133
134
)
···
153
154
154
155
func (g *GitRepo) TotalCommits() (int, error) {
155
156
output, err := g.revList(
157
+
g.h.String(),
156
158
fmt.Sprintf("--count"),
157
159
)
158
160
if err != nil {
···
170
172
func (g *GitRepo) revList(extraArgs ...string) ([]byte, error) {
171
173
var args []string
172
174
args = append(args, "rev-list")
173
-
args = append(args, g.h.String())
174
175
args = append(args, extraArgs...)
175
176
176
177
cmd := exec.Command("git", args...)
177
178
cmd.Dir = g.path
178
179
179
-
return cmd.Output()
180
+
out, err := cmd.Output()
181
+
if err != nil {
182
+
if exitErr, ok := err.(*exec.ExitError); ok {
183
+
return nil, fmt.Errorf("%w, stderr: %s", err, string(exitErr.Stderr))
184
+
}
185
+
return nil, err
186
+
}
187
+
188
+
return out, nil
180
189
}
181
190
182
191
func (g *GitRepo) Commit(h plumbing.Hash) (*object.Commit, error) {