Hm, maybe any branch which does not have "/" in its name could be considered a "main branch"?
I was thinking a "main branch" would only be those beginning with two integers separated by a period. Anything else is fair play. It would probably work well to simply apply the same rule for local tracking branches too. If someone prefer to use different names for them then the check will only be done when pushing.
Speaking of branches and permissions, I assume there aren't much rules in place yet? I'd like to suggest the scheme I adopted for use in Roxen's internal git, which stems from srb's pikex repo:
o Branches matching <user>/* can be changed freely by that user, while other users only can push new commits onto the tip.
o Branches matching <user>/x-* can not be changed at all by other users.
o Tags matching <user>/* can only be changed by that user.
o Branches and tags matching scratch/* are free-for-all.
o Main branches may not be added or deleted by anyone (has to be done locally on the server). Users may only add to the tips.
o Other branches (i.e. typically shared topic branches) may be created and added to by anyone, but not be deleted or rebased.
o Other tags may only be created by the dist builder user (this rule works at Roxen with its centralized distmaker system, but a different approach is necessary here).
I extended the Documentation/howto/update-hook-example.txt script in the git repo to implement this (along with the possibility of specific overrides), if it'd be of any interest.
If left to srb it could take a while, considering he's been completely off net for several months afaik (anyone has any idea what he might be up to nowadays?).
Anyway, it pretty much takes care of itself once set up, but I can install my script there if I get access to the box. It shouldn't conflict with githelper since this script uses the update hook.
pike-devel@lists.lysator.liu.se