> * Additional branch namespaces refs/users/<user>/heads and 
> refs/vendors/<vendor>/heads, and similar tag namespaces 
> refs/users/<user>/tags and refs/vendors/<vendor>/tags.

Hmmm. Note to self: I missed the fact that this namespace was
also used for tags.

> * Only allowing branch deletion for certain ref patterns (refs/users and 
> refs/vendors in this case).

Once we add support for the update-hook, I think you'll be able to
implement that feature there.

This might be of general interest however, so I'll think about
something. Up until now, the configuration options taking patterns
have always taken pattern that activate the option of they match.
Here, we want "turn this option on, except in those cases".
Maybe the way to go is to have two options, both related:

  - allow-branch-deletion (default: True)
  - branch-deletion-exception (default: empty list)

The second option is ignored if allow-branch-deletion is True.

Project that want to reject them all, just sets the option to False.

Projects like GCC then use both:

  allow-branch-deletion: True
  branch-deletion-exception = <vendors_branch_ref_regexp>
  branch-deletion-exception = <users_branch_ref_regexp>

> * Controlling when non-fast-forward pushes are allowed for ref patterns 
> outside refs/heads.

OK.


-- 
Joel

Reply via email to