diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -626,6 +626,10 @@ 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) diff --git a/tests/test-phases.t b/tests/test-phases.t --- a/tests/test-phases.t +++ b/tests/test-phases.t @@ -164,6 +164,17 @@ But secret can still be bundled explicit 4 changesets found $ cd .. +Test secret changeset are not cloned +(during local clone) + + $ hg clone -qU initialrepo clone-dest + $ hglog -R clone-dest + 4 0 B' + 3 0 D + 2 0 C + 1 0 B + 0 0 A + Test revset $ cd initialrepo