Eric Wong <e@xxxxxxxx> writes: > So I had receive.denyNonFastforwards=true set, and a > special cases for `pu': > > fetch = +refs/heads/pu:refs/remotes/origin/pu Hmph. I thought receive.denyNonFastforwards was for pushing into the repository, so it is a bit puzzling that you bring up "only updates to fetch into 'pu' is allowed to be forced" like this. Such an arrangement would let you know when 'next' got rewound, which is another plus ;-) > Which necessitated s/pu/seen/. So I wonder if there's other > denyNonFastforwards users out there affected. Anyways, just > a data point... I can sort-of see how the special case would work, but what makes your setting fetch other branches like 'master', 'todo', and 'next'? Do you have a separate "fetch" refspec for each of the ones you are interested in? Or "remote.origin.fetch = refs/heads/*:refs/remotes/origin/*" which serves as the default catch-all (which overlaps with the "pu can be fast forwarded" you showed---I don't recall how we designed such a set-up to work offhand, so I am a bit curious) works as a natural "require fast-forward in general, but a more specific rule about 'pu' allows non-fast-forward updates"?