Junio C Hamano wrote: > Phillip Wood <phillip.wood123@xxxxxxxxx> writes: > > > As I understand it the motivation for this change is to have 'git -c > > pull.rebase=true pull --ff-only' actually fast forward. Why cant we > > just change pull not to rebase in that case? > > ... > > Is there a use for this outside of 'git pull --ff-only'? I'm far from > > convinced we want this new option but if we do end up adding it I > > think it should error out in combination with '-i' or '-x' as '-i' > > implies the user wants to change the existing commits and '-x' can end > > up changing them as well. > > > > I think this patch addresses a valid problem but it seems to me that > > the approach taken pushes complexity into rebase to handle a case when > > pull does not need to invoke rebase in the first place. > > I share the sentiment, but my conclusion would be different. > > Even though we explain that "pull" is _like_ "fetch" followed by > "merge" (or "rebase"), at the conceptual level, "pull --ff-only" > should not have to invoke merge or rebase backend. Indeed. I'm about to send a patch series that adds the `git fast-forward` command, so `git pull` doesn't even have to call either of those. This cleanly separates the logic, except --ff-only remains purely for `git merge`, and instead there's a new: git -c pull.mode=fast-forward pull Now it's 100% clear what these three do: git -c pull.mode=fast-forward pull git -c pull.mode=merge pull git -c pull.mode=rebase pull -- Felipe Contreras