Differences between revisions 1 and 19 (spanning 18 versions)
Revision 1 as of 2012-05-16 19:34:26
Size: 2370
Editor: mpm
Comment:
Revision 19 as of 2015-01-04 11:33:58
Size: 2578
Editor: ArneBab
Comment: saying “more important than yours” sounds unfriendly. Removed it.
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 4: Line 3:

Mercurial features you should consider avoiding
Mercurial features you should consider avoiding.
Line 10: Line 8:
Line 18: Line 15:
 
These features are all at odds with Mercurial's core design assumptions, and will therefore always present difficulties in terms of performance, ease-of-use, and integration. As such, when using them, you won't get the best possible Mercurial experience.

These features are all at odds with Mercurial's core design, and will therefore always present some difficulties in terms of performance, ease of use, and integration. As such, when using them, you won't get the best possible Mercurial experience. Due to our [[CompatibilityRules|compatibility rules]], these features will continue to exist — but we want to make you aware that there are often better alternatives.
Line 24: Line 21:

Don't be so sure. Plenty of projects larger and more important than yours don't use them. These legacy features were very intentionally excluded from the Mercurial design because their cost/benefit ratio was exceptionally bad. But if external forces dictate that these features are mandatory for using Mercurial, they're available as extensions.
Don't be so sure. Plenty of projects larger than yours don't use them. These legacy features were very intentionally excluded from the Mercurial design because their cost/benefit ratio was exceptionally bad. But if external forces dictate that these features are mandatory for using Mercurial, they're available as extensions.
Line 28: Line 24:
Line 32: Line 27:
Line 36: Line 30:
This will only give acceptable performance on very small projects. There are plenty of [[MercurialHosting|free or inexpensive alternatives]].
Line 37: Line 32:
This will only give acceptable performance on very small projects. There are plenty of [[MercurialHosting|free or inexpensive alternatives]]. == See also ==
 * FeatureLevels
 * UnlovedFeatures
 * CompatibilityRules

Features of Last Resort

Mercurial features you should consider avoiding.

1. What is a feature of last resort?

"Features of last resort" include:

These features are all at odds with Mercurial's core design, and will therefore always present some difficulties in terms of performance, ease of use, and integration. As such, when using them, you won't get the best possible Mercurial experience. Due to our compatibility rules, these features will continue to exist — but we want to make you aware that there are often better alternatives.

/!\ You should give careful consideration to alternatives when first deploying Mercurial.

2. But I need keyword and EOL handling!

Don't be so sure. Plenty of projects larger than yours don't use them. These legacy features were very intentionally excluded from the Mercurial design because their cost/benefit ratio was exceptionally bad. But if external forces dictate that these features are mandatory for using Mercurial, they're available as extensions.

3. But I need to have managed subprojects!

Again, don't be so sure. Significant projects like Mozilla that have tons of dependencies do just fine without using subrepos. Most smaller projects will almost certainly be better off without using subrepos. This is not true for all projects, however, so we've made them available as an option. Be sure to follow our recommendations for best results.

4. But I need to manage lots of large files!

This is certainly true for some projects, but not for most. Mercurial does fine with the binary file needs of most projects where source code dominates, but can run into trouble on projects with gigabytes of binary assets. Using the largefiles extension will help some projects, but will also bring in significant new complexities and rough edges. Again, you should probably only use this feature if testing shows that you can't realistically use Mercurial without it.

5. But I need to host my project on a static HTTP server!

This will only give acceptable performance on very small projects. There are plenty of free or inexpensive alternatives.

6. See also


FeaturesOfLastResort (last edited 2015-01-04 11:33:58 by ArneBab)