diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -289,7 +289,7 @@ def clone(ui, peeropts, source, dest=Non dircleanup = DirCleanup(dest) copy = False - if srcrepo.cancopy() and islocal(dest): + if srcrepo.cancopy() and islocal(dest) and not srcrepo.revs("secret()"): copy = not pull and not rev if copy: diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -637,10 +637,6 @@ class localrepository(repo.repository): def local(self): return self - def cancopy(self): - return (repo.repository.cancopy(self) - and not self._phaseroots[phases.secret]) - def join(self, f): return os.path.join(self.path, f)