Merge branch 'pw/rebase-keep-empty-fixes'
"git rebase --keep-empty" still removed an empty commit if the other side contained an empty commit (due to the "does an equivalent patch exist already?" check), which has been corrected. * pw/rebase-keep-empty-fixes: rebase: respect --no-keep-empty rebase -i --keep-empty: don't prune empty commits rebase --root: stop assuming squash_onto is unset
This commit is contained in:
commit
d892beef52
@ -62,6 +62,7 @@ $(gettext 'Resolve all conflicts manually, mark them as resolved with
|
||||
You can instead skip this commit: run "git rebase --skip".
|
||||
To abort and get back to the state before "git rebase", run "git rebase --abort".')
|
||||
"
|
||||
squash_onto=
|
||||
unset onto
|
||||
unset restrict_revision
|
||||
cmd=
|
||||
@ -270,6 +271,9 @@ do
|
||||
--allow-empty-message)
|
||||
allow_empty_message=--allow-empty-message
|
||||
;;
|
||||
--no-keep-empty)
|
||||
keep_empty=
|
||||
;;
|
||||
--preserve-merges)
|
||||
preserve_merges=t
|
||||
test -z "$interactive_rebase" && interactive_rebase=implied
|
||||
|
@ -3001,7 +3001,7 @@ int sequencer_make_script(FILE *out, int argc, const char **argv,
|
||||
init_revisions(&revs, NULL);
|
||||
revs.verbose_header = 1;
|
||||
revs.max_parents = 1;
|
||||
revs.cherry_pick = 1;
|
||||
revs.cherry_mark = 1;
|
||||
revs.limited = 1;
|
||||
revs.reverse = 1;
|
||||
revs.right_only = 1;
|
||||
@ -3026,8 +3026,12 @@ int sequencer_make_script(FILE *out, int argc, const char **argv,
|
||||
return error(_("make_script: error preparing revisions"));
|
||||
|
||||
while ((commit = get_revision(&revs))) {
|
||||
int is_empty = is_original_commit_empty(commit);
|
||||
|
||||
if (!is_empty && (commit->object.flags & PATCHSAME))
|
||||
continue;
|
||||
strbuf_reset(&buf);
|
||||
if (!keep_empty && is_original_commit_empty(commit))
|
||||
if (!keep_empty && is_empty)
|
||||
strbuf_addf(&buf, "%c ", comment_line_char);
|
||||
strbuf_addf(&buf, "%s %s ", insn,
|
||||
oid_to_hex(&commit->object.oid));
|
||||
|
@ -215,7 +215,7 @@ test_run_rebase () {
|
||||
}
|
||||
test_run_rebase success ''
|
||||
test_run_rebase failure -m
|
||||
test_run_rebase failure -i
|
||||
test_run_rebase success -i
|
||||
test_run_rebase failure -p
|
||||
|
||||
# m
|
||||
|
Loading…
Reference in New Issue
Block a user