Dne 24. 11. 20 v 4:41 Felipe Contreras napsal(a):
On Mon, Nov 23, 2020 at 8:32 PM Jeff King <peff@xxxxxxxx> wrote:On Mon, Nov 23, 2020 at 06:18:40PM -0800, Junio C Hamano wrote:So an obvious thing we could do, if pull.mode is too much of a change, is to make "pull --rebase" codepath honor pull.ff as well, perhaps? I.e. those who set pull.ff=only are saying that "please stop me when I have any local change---I want to be notified if my pull on this branch results in anything but a fast-forward from the upstream". And then making an unconfigured pull.ff to default to pull.ff=only may give a proper failure whether you merge or rebase. I dunno.Yeah, I would be perfectly happy with that (and it's in fact what I _thought_ was happening before today's discussion). I do wonder if anybody has set: pull.rebase=true pull.ff=only which would then refuse to rebase at all, and whether they would be annoyed. I am scratching my head over why one would do that, though. It is meaningful only if you usually rebase, but when you say "--no-rebase" you want to make sure you do not create a merge commit. Which seems weird.I think you are losing track of the goal. The goal is that *eventually*: 1. No warning is issued 2. No configuration is needed 3. The default behavior is sane. The whole point of "pull.rebase=ff-only" (aka. "pull.mode=ff-only") was to make it the *default*. If you make "pull.ff=only" the default, *and* you make "git pull --rebase" respect that, then "git pull --rebase" will fail by default (unless it's a fast-forward). What we really need is something like: 1. git pull # fail by default unless it's a fast-forward 2. git pull --merge # force a merge (unless it's a fast-forward, depending on pull.ff) 3. git pull --rebase # force a rebase (unless it's a fast-forward, depending on pull.ff)
This is the default I would expect. Vít
Attachment:
OpenPGP_0x0CE09EE79917B87C.asc
Description: application/pgp-keys
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature