summaryrefslogtreecommitdiff
path: root/git-rebase--preserve-merges.sh
AgeCommit message (Collapse)AuthorFilesLines
2018-11-02Merge branch 'ag/rebase-i-in-c'Libravatar Junio C Hamano1-5/+5
Rewrite of the remaining "rebase -i" machinery in C. * ag/rebase-i-in-c: rebase -i: move rebase--helper modes to rebase--interactive rebase -i: remove git-rebase--interactive.sh rebase--interactive2: rewrite the submodes of interactive rebase in C rebase -i: implement the main part of interactive rebase as a builtin rebase -i: rewrite init_basic_state() in C rebase -i: rewrite write_basic_state() in C rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in C rebase -i: implement the logic to initialize $revisions in C rebase -i: remove unused modes and functions rebase -i: rewrite complete_action() in C t3404: todo list with commented-out commands only aborts sequencer: change the way skip_unnecessary_picks() returns its result sequencer: refactor append_todo_help() to write its message to a buffer rebase -i: rewrite checkout_onto() in C rebase -i: rewrite setup_reflog_action() in C sequencer: add a new function to silence a command, except if it fails rebase -i: rewrite the edit-todo functionality in C editor: add a function to launch the sequence editor rebase -i: rewrite append_todo_help() in C sequencer: make three functions and an enum from sequencer.c public
2018-10-09rebase -i: move rebase--helper modes to rebase--interactiveLibravatar Alban Gruin1-5/+5
This moves the rebase--helper modes still used by git-rebase--preserve-merges.sh (`--shorten-ids`, `--expand-ids`, `--check-todo-list`, `--rearrange-squash` and `--add-exec-commands`) to rebase--interactive.c. git-rebase--preserve-merges.sh is modified accordingly, and rebase--helper.c is removed as it is useless now. Signed-off-by: Alban Gruin <alban.gruin@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-07-06git-rebase--preserve-merges: fix formatting of todo help messageLibravatar Tobias Klauser1-2/+2
Part of the todo help message in git-rebase--preserve-merges.sh is unnecessarily indented, making the message look weird. Remove the extra lines and trailing indent. This was a minor regression introduced by d48f97aa ("rebase: reindent function git_rebase__interactive", 2018-03-23) in the 2.18 timeframe. The same issue exists in "rebase -i", but it is being addressed separately as part of the rewrite of the subcommand into C. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Reviewed-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-06-01rebase: strip unused code in git-rebase--preserve-merges.shLibravatar Alban Gruin1-61/+4
This removes the code coming from git-rebase--interactive.sh that is not needed by preserve-merges, and changes the header comment accordingly. In a following commit, the -p code from git-rebase--interactive.sh will be stripped out. As preserve-merges’ successor is already in the works, this will be the only script to be converted. This also seems to fix a bug where a failure in `pick_one_preserving_merges()` would fallback to the non-preserve-merges `pick_one()`. Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
2018-06-01rebase: introduce a dedicated backend for --preserve-mergesLibravatar Alban Gruin1-0/+1069
This duplicates git-rebase--interactive.sh to git-rebase--preserve-merges.sh. This is done to split -p from -i. No modifications are made to this file here, but any code that is not used by -p will be stripped in the next commit. Signed-off-by: Alban Gruin <alban.gruin@gmail.com>