The repo was broken. Deadlock in code, confusion in the team. Arguments over Git versus Mercurial drowned out the real work.
Git and Mercurial are both distributed version control systems. Each is fast, powerful, and proven at scale. Both let developers commit changes locally, create branches instantly, and merge without touching the central server. But their differences decide the winner in most teams.
Git dominates the industry. Its branching model is lightweight, merges are fast, and its ecosystem is vast. Command syntax is compact but unforgiving; mistakes can be destructive if you don’t understand the internals. GitHub, GitLab, and Bitbucket have cemented Git’s reach, pulling developers into its workflow by default.
Mercurial is cleaner in design. Commands are consistent and safer for newcomers. It avoids the detached HEAD state and has a simpler mental model. Its performance matches Git in most real-world cases. But its ecosystem shrank when major hosting platforms dropped support. Extensions still allow flexibility, but fewer engineers maintain them.