# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1392815985 -32400
#      Wed Feb 19 22:19:45 2014 +0900
# Branch stable
# Node ID 78f547cdc362f736e061d86f2c79f9a7d57d5120
# Parent  ca970d6acedb01af15f6dbabb0d057a6a6643e79
verify: do not prevent verify repository containing hidden changesets

Since a959f7167077, repo.cancopy() cannot be used to check if the repo is
a bundlerepository.

repo.url() should always have "scheme:", so it isn't necessary to parse
by util.url().

diff --git a/mercurial/verify.py b/mercurial/verify.py
--- a/mercurial/verify.py
+++ b/mercurial/verify.py
@@ -38,7 +38,7 @@
     mf = repo.manifest
     lrugetctx = util.lrucachefunc(repo.changectx)
 
-    if not repo.cancopy():
+    if not repo.url().startswith('file:'):
         raise util.Abort(_("cannot verify bundle or remote repos"))
 
     def err(linkrev, msg, filename=None):
diff --git a/tests/test-phases.t b/tests/test-phases.t
--- a/tests/test-phases.t
+++ b/tests/test-phases.t
@@ -549,4 +549,13 @@
   o  0 public A
   
 
+test verify repo containing hidden changesets, which should not abort just
+because repo.cancopy() is False
 
+  $ cd ../initialrepo
+  $ hg verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  7 files, 8 changesets, 7 total revisions