Differences between revisions 8 and 9
Revision 8 as of 2012-06-14 16:07:49
Size: 3232
Editor: DapperDanMan
Comment:
Revision 9 as of 2012-06-14 16:10:58
Size: 3247
Editor: DapperDanMan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 31: Line 31:
  * [[http://en.wikipedia.org/wiki/Repo_(script)|Repo tool by Google:]] used by the Android project, written in python, specific to git   * Non-Mercurial: [[http://en.wikipedia.org/wiki/Repo_(script)|Repo tool by Google:]] used by the Android project, written in python, specific to git

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 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. 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 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.

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.

Alternatives are usually community specific.

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)