Fine-grained access control in Mercurial is the antidote to that chaos. It gives you absolute control over who can read, write, or push to specific branches, files, or directories. It moves beyond basic repository-level permissions, letting you define access rules that match how your team actually works. No more broad, all-or-nothing permissions that open the door to mistakes.
Mercurial’s core doesn’t ship with this level of permission control out of the box. You get it through extensions like hg-forest, ACL hooks, and repository config tweaks. The goal is clear: prevent unwanted changes before they hit central code. With fine-grained rules, senior developers can gatekeep critical branches like default or production, while less sensitive areas stay open for faster iteration.
At its heart, fine-grained access control is about security and speed. It cuts risk without slowing delivery. It’s the reason you can let more people contribute without fearing accidental merges into protected code. It also simplifies audits—every push has a traceable identity and an enforced ruleset that can’t be bypassed.