# HG changeset patch # User Mads Kiilerich # Date 1395184710 -3600 # Node ID f8e531a3a77cfe8aca930e60e66b5c25122a689e # Parent 202291a280fb6225bf7f811ed3b5ac6232c5b2af repo: rephrase the "missing requirement" error message Unknown requirements will now be reported as: abort: repository requires features unknown to this Mercurial: largefiles! (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) Some features of this phrasing: * avoid double ':' in abort message * make it more clear who requires and knows what * don't quote the requirement names - it is not something the user entered or need the exact spelling of ... and it is "identifiers" that are unambiguous anyway * remove double hint by removing "(upgrade Mercurial)" comment * don't mention upgrading Mercurial without mentioning enabling the feature - instead, just refer to wiki page for both * don't just talk about "details", talk about "more information" diff -r 202291a280fb -r f8e531a3a77c mercurial/scmutil.py --- a/mercurial/scmutil.py Thu Mar 20 17:34:02 2014 -0700 +++ b/mercurial/scmutil.py Wed Mar 19 00:18:30 2014 +0100 @@ -732,10 +732,10 @@ missings.sort() if missings: raise error.RequirementError( - _("unknown repository format: requires features '%s' (upgrade " - "Mercurial)") % "', '".join(missings), + _("repository requires features unknown to this Mercurial: %s") + % " ".join(missings), hint=_("see http://mercurial.selenic.com/wiki/MissingRequirement" - " for details")) + " for more information")) return requirements class filecachesubentry(object): diff -r 202291a280fb -r f8e531a3a77c tests/test-commit.t --- a/tests/test-commit.t Thu Mar 20 17:34:02 2014 -0700 +++ b/tests/test-commit.t Wed Mar 19 00:18:30 2014 +0100 @@ -102,8 +102,8 @@ $ echo foo >> foo $ echo fake >> .hg/requires $ hg commit -m bla - abort: unknown repository format: requires features 'fake' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: fake! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ cd .. diff -r 202291a280fb -r f8e531a3a77c tests/test-identify.t --- a/tests/test-identify.t Thu Mar 20 17:34:02 2014 -0700 +++ b/tests/test-identify.t Wed Mar 19 00:18:30 2014 +0100 @@ -113,14 +113,14 @@ $ echo fake >> .hg/requires $ hg id - abort: unknown repository format: requires features 'fake' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: fake! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ cd .. #if no-outer-repo $ hg id test - abort: unknown repository format: requires features 'fake' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: fake! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] #endif diff -r 202291a280fb -r f8e531a3a77c tests/test-largefiles.t --- a/tests/test-largefiles.t Thu Mar 20 17:34:02 2014 -0700 +++ b/tests/test-largefiles.t Wed Mar 19 00:18:30 2014 +0100 @@ -2259,8 +2259,8 @@ $ hg -R enabledlocally root $TESTTMP/individualenabling/enabledlocally (glob) $ hg -R notenabledlocally root - abort: unknown repository format: requires features 'largefiles' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: largefiles! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ hg init push-dst @@ -2276,8 +2276,8 @@ [255] $ hg clone enabledlocally clone-dst - abort: unknown repository format: requires features 'largefiles' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: largefiles! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ test -d clone-dst [1] diff -r 202291a280fb -r f8e531a3a77c tests/test-requires.t --- a/tests/test-requires.t Thu Mar 20 17:34:02 2014 -0700 +++ b/tests/test-requires.t Wed Mar 19 00:18:30 2014 +0100 @@ -9,13 +9,13 @@ [255] $ echo indoor-pool > .hg/requires $ hg tip - abort: unknown repository format: requires features 'indoor-pool' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: indoor-pool! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ echo outdoor-pool >> .hg/requires $ hg tip - abort: unknown repository format: requires features 'indoor-pool', 'outdoor-pool' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: indoor-pool outdoor-pool! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ cd .. @@ -62,8 +62,8 @@ [255] $ hg clone supported clone-dst - abort: unknown repository format: requires features 'featuresetup-test' (upgrade Mercurial)! - (see http://mercurial.selenic.com/wiki/MissingRequirement for details) + abort: repository requires features unknown to this Mercurial: featuresetup-test! + (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) [255] $ hg clone --pull supported clone-dst abort: required features are not supported in the destination: featuresetup-test