diff options
Diffstat (limited to 'cmd/gitaly-git2go/resolve_conflicts.go')
-rw-r--r-- | cmd/gitaly-git2go/resolve_conflicts.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/cmd/gitaly-git2go/resolve_conflicts.go b/cmd/gitaly-git2go/resolve_conflicts.go index 3c8bf6eed..ba1d516cb 100644 --- a/cmd/gitaly-git2go/resolve_conflicts.go +++ b/cmd/gitaly-git2go/resolve_conflicts.go @@ -7,6 +7,7 @@ import ( "errors" "flag" "fmt" + "os" "strings" "time" @@ -149,6 +150,32 @@ func (cmd resolveSubcommand) Run() error { ) } + tree, err := index.WriteTreeTo(repo) + if err != nil { + return err + } + + committer := git.Signature{ + Name: sanitizeSignatureInfo(request.AuthorName), + Email: sanitizeSignatureInfo(request.AuthorMail), + When: request.AuthorDate, + } + + commit, err := repo.CreateCommitFromIds("", &committer, &committer, request.Message, tree, ours.Id(), theirs.Id()) + if err != nil { + return fmt.Errorf("could not create resolve conflict commit: %w", err) + } + + response := git2go.ResolveResult{ + git2go.MergeResult{ + CommitID: commit.String(), + }, + } + + if err := response.SerializeTo(os.Stdout); err != nil { + return err + } + return nil } |