From 5882d60fb7ccd4cfc0fe69286aa96e198c9d1eb0 Mon Sep 17 00:00:00 2001 From: John Cai Date: Mon, 3 Jan 2022 15:40:28 -0500 Subject: Add Amend option to CommitOptions Adds an Amend option to CommitOptions that behaves like git --amend. This change includes modifications to the Validate function to disallow a Commit call with both Amend and either Parents or All enabled. --- options.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'options.go') diff --git a/options.go b/options.go index d6f0e9f..a2d62bd 100644 --- a/options.go +++ b/options.go @@ -471,10 +471,21 @@ type CommitOptions struct { // commit will not be signed. The private key must be present and already // decrypted. SignKey *openpgp.Entity + // Amend will create a new commit object and replace the commit that HEAD currently + // points to. Cannot be used with All nor Parents. + Amend bool } // Validate validates the fields and sets the default values. func (o *CommitOptions) Validate(r *Repository) error { + if o.All && o.Amend { + return errors.New("all and amend cannot be used together") + } + + if o.Amend && len(o.Parents) > 0 { + return errors.New("parents cannot be used with amend") + } + if o.Author == nil { if err := o.loadConfigAuthorAndCommitter(r); err != nil { return err -- cgit