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"
--- 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):
--- 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 ..
--- 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
--- 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]
--- 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