aboutsummaryrefslogtreecommitdiffstats
path: root/rebase-interactive.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-04-25 16:41:11 +0900
committerJunio C Hamano <gitster@pobox.com>2019-04-25 16:41:11 +0900
commite62e68d35949235435ea7f7d22ab6ea678fd46b0 (patch)
treea5b30fbe3c7297a9465f39f7b55960b9f49480ad /rebase-interactive.h
parent5795a75f9bd7a7f008b213c2f099e8c6b0468512 (diff)
parented35d18841130fee0109cbe40b659275a3f78cc9 (diff)
downloadgit-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.h9
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