+4
-10
knotserver/git/diff.go
+4
-10
knotserver/git/diff.go
···
134
135
// FormatPatch generates a git-format-patch output between two commits,
136
// and returns the raw format-patch series, a parsed FormatPatch and an error.
137
-
func (g *GitRepo) formatSinglePatch(base, commit2 plumbing.Hash, extraArgs ...string) (string, *types.FormatPatch, error) {
138
var stdout bytes.Buffer
139
140
args := []string{
141
"-C",
142
g.path,
143
"format-patch",
144
-
fmt.Sprintf("%s..%s", base.String(), commit2.String()),
145
"--stdout",
146
}
147
args = append(args, extraArgs...)
···
227
changeId = string(val)
228
}
229
230
-
var parentHash plumbing.Hash
231
-
if len(commit.ParentHashes) > 0 {
232
-
parentHash = commit.ParentHashes[0]
233
-
} else {
234
-
parentHash = plumbing.NewHash("4b825dc642cb6eb9a060e54bf8d69288fbee4904") // git empty tree hash
235
-
}
236
-
237
var additionalArgs []string
238
if changeId != "" {
239
additionalArgs = append(additionalArgs, "--add-header", fmt.Sprintf("Change-Id: %s", changeId))
240
}
241
242
-
stdout, patch, err := g.formatSinglePatch(parentHash, commit.Hash, additionalArgs...)
243
if err != nil {
244
return "", nil, fmt.Errorf("failed to format patch for commit %s: %w", commit.Hash.String(), err)
245
}
···
134
135
// FormatPatch generates a git-format-patch output between two commits,
136
// and returns the raw format-patch series, a parsed FormatPatch and an error.
137
+
func (g *GitRepo) formatSinglePatch(commit plumbing.Hash, extraArgs ...string) (string, *types.FormatPatch, error) {
138
var stdout bytes.Buffer
139
140
args := []string{
141
"-C",
142
g.path,
143
"format-patch",
144
+
"-1",
145
+
commit.String(),
146
"--stdout",
147
}
148
args = append(args, extraArgs...)
···
228
changeId = string(val)
229
}
230
231
var additionalArgs []string
232
if changeId != "" {
233
additionalArgs = append(additionalArgs, "--add-header", fmt.Sprintf("Change-Id: %s", changeId))
234
}
235
236
+
stdout, patch, err := g.formatSinglePatch(commit.Hash, additionalArgs...)
237
if err != nil {
238
return "", nil, fmt.Errorf("failed to format patch for commit %s: %w", commit.Hash.String(), err)
239
}