On Tue, Nov 24, 2020 at 6:39 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Alex Henrie <alexhenrie24@xxxxxxxxx> writes: > > > We'd only need a warning if both pull.ff and pull.rebase are unset, > > since that's the only situation where the behavior would change. And > > providentially, we already have a warning in that exact case, although > > we should probably tweak it to explain what the new behavior is going > > to be :-) > > If we were starting "git pull" from scratch without any existing > configuration and command line options, pull.mode might present a > simpler end user experience, but I have to say that pull.ff and > pull.rebase that are fairly well ingrained in docs and users' minds, > the above plan sounds like a better option to reduce the cognitive > overhead for users. Is it? From forums, blogs, and answers in Stack Overflow what I mostly see is "do not do git pull". > >> And yes, it should be possible to do what you suggest, but have you > >> tried? I suspect both the code and the documentation would be quite > >> convoluted. > > > > Yes, I have written a very simple patch that implements the behavior > > that I am suggesting. I will send it to the mailing list later > > tonight. > > Let's see how well the comparison between two approaches play out. > Thanks. I tried to remove pull.mode from my patch series, and it mostly works, except if you: 1. Have "pull.ff=only" 2. Do a "git pull --no-rebase" When you have "pull.mode=ff-only", doing "git pull --no-rebase" ("git pull --merge") that mode is overridden, and the merge succeeds. If you have "pull.ff=only", you would have to do "git pull --no-rebase --no-ff" for the merge to succeed, which I don't think should be the default. We could change the semantics of "pull.ff=only", but that would break existing behavior, and it starts to get convoluted. Cheers. -- Felipe Contreras