[RFC] Per-branch receive.* settings

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:50:26

Currently you can do in your server's git config:

    [receive]
        denyDeletes = true
        denyNonFastForwards = true

But for most servers that's not what you want, you actually want to
deny those things to the master branch, but allow people to have their
private topic branches that they can reset. So how about allowing:

    [receive]
        denyDeletes = false
        denyNonFastForwards = false

    [branch "master"]
        denyDeletes = true
        denyNonFastForwards = true

I.e. have a per-branch setting that overrides the global setting?

(Of course ideally this would be:
    "branch.master.receive.{denyDeletes,denyNonFastForwards}"

But the *.ini format can only have a depth of three, so it has to be:

    "branch.master.{denyDeletes,denyNonFastForwards}"

Or perhaps:

    "branch.master.receive-{denyDeletes,denyNonFastForwards}"

Anyway, I can code this up if there's interest in it. This could also
be done with a .git/hooks/update hook, but IMO it's better to have
this as a documented setting for the most common things you want to
deny/allow.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help