Options to control how files are written during git_rebase_init, git_rebase_next and git_rebase_abort. Note that a minimum strategy of git_checkout_strategy_t.GIT_CHECKOUT_SAFE is defaulted in init and next, and a minimum strategy of git_checkout_strategy_t.GIT_CHECKOUT_FORCE is defaulted in abort to match git semantics.
Used by git_rebase_init, this will begin an in-memory rebase, which will allow callers to step through the rebase operations and commit the rebased changes, but will not rewind HEAD or update the repository to be in a rebasing state. This will not interfere with the working directory (if there is one).
Options to control how trees are merged during git_rebase_next.
This will be passed to each of the callbacks in this struct as the last parameter.
Used by git_rebase_init, this will instruct other clients working on this rebase that you want a quiet rebase experience, which they may choose to provide in an application-specific manner. This has no effect upon libgit2 directly, but is provided for interoperability between Git tools.
Used by git_rebase_finish, this is the name of the notes reference used to rewrite notes for rebased commits when finishing the rebase; if null, the contents of the configuration option notes.rewriteRef is examined, unless the configuration option notes.rewrite.rebase is set to false. If notes.rewriteRef is also null, notes will not be rewritten.
If provided, this will be called with the commit content, allowing a signature to be added to the rebase commit. Can be skipped with git_error_code.GIT_PASSTHROUGH. If git_error_code.GIT_PASSTHROUGH is returned, a commit will be made without a signature. This field is only used when performing git_rebase_commit.
Rebase options
Use to tell the rebase machinery how to operate.