diff options
| author | Carlos Martín Nieto <carlosmn@github.com> | 2016-02-12 00:55:20 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <carlosmn@github.com> | 2016-02-12 00:55:20 +0100 |
| commit | 5a296ad07ea5536a0ac2f17921f2839612d838d3 (patch) | |
| tree | 781b5d19da9b94dd48f5c1f78e3ff701f18832d3 /include/git2/rebase.h | |
| parent | 2f2129b1cea07a482aaef43b4b23f63be4c29418 (diff) | |
| parent | a202e0d45bcfd672cf1ff75abc192e6a592874ba (diff) | |
| download | libgit2-5a296ad07ea5536a0ac2f17921f2839612d838d3.tar.gz | |
Merge pull request #3610 from ethomson/rebase_bare
rebase: introduce bare rebasing
Diffstat (limited to 'include/git2/rebase.h')
| -rw-r--r-- | include/git2/rebase.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/include/git2/rebase.h b/include/git2/rebase.h index cf1b00fd9..4fda1fd2f 100644 --- a/include/git2/rebase.h +++ b/include/git2/rebase.h @@ -39,6 +39,15 @@ typedef struct { int quiet; /** + * 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). + */ + int inmemory; + + /** * 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` @@ -49,6 +58,11 @@ typedef struct { const char *rewrite_notes_ref; /** + * Options to control how trees are merged during `git_rebase_next`. + */ + git_merge_options merge_options; + + /** * Options to control how files are written during `git_rebase_init`, * `git_checkout_next` and `git_checkout_abort`. Note that a minimum * strategy of `GIT_CHECKOUT_SAFE` is defaulted in `init` and `next`, @@ -101,7 +115,8 @@ typedef enum { #define GIT_REBASE_OPTIONS_VERSION 1 #define GIT_REBASE_OPTIONS_INIT \ - {GIT_REBASE_OPTIONS_VERSION, 0, NULL, GIT_CHECKOUT_OPTIONS_INIT} + { GIT_REBASE_OPTIONS_VERSION, 0, 0, NULL, GIT_MERGE_OPTIONS_INIT, \ + GIT_CHECKOUT_OPTIONS_INIT} /** Indicates that a rebase operation is not (yet) in progress. */ #define GIT_REBASE_NO_OPERATION SIZE_MAX @@ -127,6 +142,12 @@ typedef struct { * be populated for operations of type `GIT_REBASE_OPERATION_EXEC`. */ const char *exec; + + /** + * The index that is the result of an operation. + * This is set only for in-memory rebases. + */ + git_index *index; } git_rebase_operation; /** |
