Feature Levels
How we categorize features.
Contents
1. Strata
Mercurial tries to avoid having every user become experts in version control, so it tries to organize functionality into different strata:
basic commands (the <20 commands shown by just typing 'hg')
- the commands every user should know to get work done
- core features
- common features available to all users
- safe for inexperienced users
- comparable to the core features present in most systems
covered by our backwards-compatibility rules
- same level of testing and support as core features
- also covered by our backwards-compatibility rules
- not essential functionality
- not appropriate for all users
- some may be dangerous (e.g. strip)
- third-party extensions
- not written/tested/supported/maintained by us
- may break backwards compatibility
- may violate core UI expectations
- may need upgrading when you upgrade Mercurial
2. Life cycle
We also have varying levels of feature support, corresponding to different stages in a feature's lifecycle:
- experimental/undocumented
- not intended for production use
- feature is subject to change or removal
- support not guaranteed
- production
- fully supported, actively developed
- fully maintained and tested for backwards compatibility
- don't use this feature in production unless you really need to
- still supported and developed
- still maintained and tested for backwards compatibility
- users are strongly discouraged from using this feature
- not a support or development priority
- still maintained and tested for backwards compatibility
- deprecated
- removed from documentation
- only regressions will get support attention
- still maintained and tested for backwards compatibility
not scheduled for removal
- removed
- only used for features that can be removed without negative impact
- very rare