On Thu, Jan 06, 2022 at 12:12:40PM -0500, Taylor Blau wrote: > On Thu, Jan 06, 2022 at 10:02:26AM -0500, John Cai wrote: > > diff --git a/builtin/pull.c b/builtin/pull.c > > index 100cbf9fb8..8423e420ee 100644 > > --- a/builtin/pull.c > > +++ b/builtin/pull.c > > @@ -1133,7 +1133,14 @@ int cmd_pull(int argc, const char **argv, const char *prefix) > > die(_("cannot rebase with locally recorded submodule modifications")); > > > > if (can_ff) { > > - /* we can fast-forward this without invoking rebase */ > > + /* > > + * We can fast-forward without invoking > > + * rebase, by calling run_merge(). But we > > + * have to allow rebase.autostash=true to kick > > + * in. > > + */ > > + if (opt_autostash < 0) > > + opt_autostash = config_autostash; > > This looks OK, and prefers the value of autostash given over options > over the configured one. But it may be a little clearer to construct it > that way explicitly (see the conditional "if (opt_rebase)" inside of > cmd_pull()). Oops, ignore this suggestion. run_merge() looks at the static variable opt_autostash, so you really do need to be manipulating it directly. Nevermind: what you wrote here looks fine. Thanks, Taylor