The terminal waits for your command, blinking like a warning. One wrong configuration in Mercurial and your workflow twists into something slow, fragile, and full of surprises. The culprit often hides in plain sight: user config dependent settings.
Mercurial’s behavior can shift based on the .hgrc file in a user’s home directory or repository-specific config files. These are loaded in a predictable order—global, repository, then environment—but their combined effect can be anything but simple. Small overrides cascade, creating differences between machines, developers, or CI pipelines. When a command runs fine locally but fails in automation, user configuration dependency is often the silent cause.
Key parameters like ui.username, extensions, diff settings, and alias definitions are all prone to user-specific overrides. In distributed teams, this means the same Mercurial repo can behave differently for different people. Scripts that rely on consistent flags may suddenly break. Extension behavior changes if a user has them enabled globally but not on CI. Even something as basic as push and pull defaults can vary across setups.