Hi Chaitanya, On Thu, Jan 11, 2024 at 10:55:47PM +0530, Chaitanya Tata wrote: > Hi, > > I have a feature request to add `--no-edit` option to `git rebase` > like we do for `git commit`. > The workflow I typically follow is: > > * `git commit -a --fixup=XXX` > * `git rebase -i HEAD~15 --autosquash` > > But it requires closing the editor without any changes. I can > workaround this using the `GIT_EDITOR` option, see [1]. But it would > be good to have this built-in. The easiest workaround would be setting GIT_EDITOR=true, which matches the recommendation in [1]. Short of that, you can't do a non-interactive rebase, since we rely on the todo list generated by interactive rebases in order for `--autosquash` to work. Presumably plumbing in a new `--[no-]edit` option would be fairly straightforward, and once that is done, the change boils down to just: index 3cc88d8a80..5235a003f2 100644 --- a/sequencer.c +++ b/sequencer.c @@ -6169,7 +6169,7 @@ int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla struct todo_list new_todo = TODO_LIST_INIT; struct strbuf *buf = &todo_list->buf, buf2 = STRBUF_INIT; struct object_id oid = onto->object.oid; - int res; + int res = 0; repo_find_unique_abbrev_r(r, shortonto, &oid, DEFAULT_ABBREV); @@ -6197,8 +6197,9 @@ int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla return error(_("nothing to do")); } - res = edit_todo_list(r, todo_list, &new_todo, shortrevisions, - shortonto, flags); + if (!opts->edit) + res = edit_todo_list(r, todo_list, &new_todo, shortrevisions, + shortonto, flags); if (res == -1) return -1; else if (res == -2) { > [1] - https://stackoverflow.com/a/45783848 Thanks, Taylor