# HG changeset patch # User Pierre-Yves David # Date 1330522871 -3600 # Node ID 40cc20042fb4f70a5175d66e31a7c092c4359930 # Parent 6ba530122d8bbc809258d96b4234a6dd8dc3a90b bundlerepo: bundle repos should be non-publishing (issue3266) Bundle repo contains both the bundle content and the content of the repository used as a base. This create bugs with phases exchange because the "remote" repository claim to contains changeset it does not. The easiest way to fix this bug is to ensure a bundle repo as non publishing. This way changeset will be seen in the same phase than locally. This patch does not alter in which phase bundle revision are seen. For now they are seen as if an old client had add them on the remote: They inherit their phase from parent whatever the parent is. This is to be fixed in a later patch diff -r 6ba530122d8b -r 40cc20042fb4 mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py Wed Feb 29 09:34:19 2012 +0100 +++ b/mercurial/bundlerepo.py Wed Feb 29 14:41:11 2012 +0100 @@ -168,6 +168,7 @@ self._tempparent = tempfile.mkdtemp() localrepo.instance(ui, self._tempparent, 1) localrepo.localrepository.__init__(self, ui, self._tempparent) + self.ui.setconfig('phases', 'publish', False) if path: self._url = 'bundle:' + util.expandpath(path) + '+' + bundlename diff -r 6ba530122d8b -r 40cc20042fb4 tests/test-phases-exchange.t --- a/tests/test-phases-exchange.t Wed Feb 29 09:34:19 2012 +0100 +++ b/tests/test-phases-exchange.t Wed Feb 29 14:41:11 2012 +0100 @@ -465,6 +465,38 @@ o 0 public a-A - 054250a37db4 +Pulling from bundle does not alter phases of changeset not present in the bundle + + $ hg bundle --base 1 -r 6 -r 3 ../partial-bundle.hg + 5 changesets found + $ hg pull ../partial-bundle.hg + pulling from ../partial-bundle.hg + searching for changes + no changes found + $ hgph + @ 10 draft a-H - 967b449fbc94 + | + | o 9 draft a-G - 3e27b6f1eee1 + | | + | o 8 draft a-F - b740e3e5c05d + | | + | o 7 draft a-E - e9f537e46dea + | | + +---o 6 public n-B - 145e75495359 + | | + o | 5 public n-A - d6bcb4f74035 + | | + o | 4 public b-A - f54f1bb90ff3 + | | + | o 3 public a-D - b555f63b6063 + | | + | o 2 public a-C - 54acac6f23ab + |/ + o 1 public a-B - 548a3d25dbf0 + | + o 0 public a-A - 054250a37db4 + + Pushing to Publish=False (unknown changeset) $ hg push ../mu -r b740e3e5c05d # a-F