diff options
| author | Junio C Hamano <gitster@pobox.com> | 2019-04-25 16:41:11 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2019-04-25 16:41:11 +0900 |
| commit | e62e68d35949235435ea7f7d22ab6ea678fd46b0 (patch) | |
| tree | a5b30fbe3c7297a9465f39f7b55960b9f49480ad /rebase-interactive.h | |
| parent | 5795a75f9bd7a7f008b213c2f099e8c6b0468512 (diff) | |
| parent | ed35d18841130fee0109cbe40b659275a3f78cc9 (diff) | |
| download | git-e62e68d35949235435ea7f7d22ab6ea678fd46b0.tar.gz | |
Merge branch 'ag/sequencer-reduce-rewriting-todo'
The scripted version of "git rebase -i" wrote and rewrote the todo
list many times during a single step of its operation, and the
recent C-rewrite made a faithful conversion of the logic to C. The
implementation has been updated to carry necessary information
around in-core to avoid rewriting the same file over and over
unnecessarily.
* ag/sequencer-reduce-rewriting-todo:
rebase--interactive: move transform_todo_file()
sequencer: use edit_todo_list() in complete_action()
rebase-interactive: rewrite edit_todo_list() to handle the initial edit
rebase-interactive: append_todo_help() changes
rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
sequencer: refactor skip_unnecessary_picks() to work on a todo_list
rebase--interactive: move rearrange_squash_in_todo_file()
rebase--interactive: move sequencer_add_exec_commands()
sequencer: change complete_action() to use the refactored functions
sequencer: make sequencer_make_script() write its script to a strbuf
sequencer: refactor rearrange_squash() to work on a todo_list
sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
sequencer: refactor check_todo_list() to work on a todo_list
sequencer: introduce todo_list_write_to_file()
sequencer: refactor transform_todos() to work on a todo_list
sequencer: remove the 'arg' field from todo_item
sequencer: make the todo_list structure public
sequencer: changes in parse_insn_buffer()
Diffstat (limited to 'rebase-interactive.h')
| -rw-r--r-- | rebase-interactive.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/rebase-interactive.h b/rebase-interactive.h index 17b6c9f6d0..44dbb06311 100644 --- a/rebase-interactive.h +++ b/rebase-interactive.h @@ -3,9 +3,14 @@ struct strbuf; struct repository; +struct todo_list; -void append_todo_help(unsigned edit_todo, unsigned keep_empty, +void append_todo_help(unsigned keep_empty, int command_count, + const char *shortrevisions, const char *shortonto, struct strbuf *buf); -int edit_todo_list(struct repository *r, unsigned flags); +int edit_todo_list(struct repository *r, struct todo_list *todo_list, + struct todo_list *new_todo, const char *shortrevisions, + const char *shortonto, unsigned flags); +int todo_list_check(struct todo_list *old_todo, struct todo_list *new_todo); #endif |
