2 # |
2 # |
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
4 # |
4 # |
5 # This software may be used and distributed according to the terms of the |
5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. |
6 # GNU General Public License version 2 or any later version. |
7 |
|
8 from node import bin, hex, nullid, nullrev, short |
7 from node import bin, hex, nullid, nullrev, short |
9 from i18n import _ |
8 from i18n import _ |
10 import repo, changegroup, subrepo, discovery, pushkey, obsolete |
9 import repo, changegroup, subrepo, discovery, pushkey, obsolete |
11 import changelog, dirstate, filelog, manifest, context, bookmarks, phases |
10 import changelog, dirstate, filelog, manifest, context, bookmarks, phases |
12 import lock, transaction, store, encoding |
11 import lock, transaction, store, encoding, base85 |
13 import scmutil, util, extensions, hook, error, revset |
12 import scmutil, util, extensions, hook, error, revset |
14 import match as matchmod |
13 import match as matchmod |
15 import merge as mergemod |
14 import merge as mergemod |
16 import tags as tagsmod |
15 import tags as tagsmod |
17 from lock import release |
16 from lock import release |
1672 phases.advanceboundary(self, phases.draft, subset) |
1671 phases.advanceboundary(self, phases.draft, subset) |
1673 else: |
1672 else: |
1674 # Remote is old or publishing all common changesets |
1673 # Remote is old or publishing all common changesets |
1675 # should be seen as public |
1674 # should be seen as public |
1676 phases.advanceboundary(self, phases.public, subset) |
1675 phases.advanceboundary(self, phases.public, subset) |
|
1676 |
|
1677 remoteobs = remote.listkeys('obsolete') |
|
1678 if 'dump' in remoteobs: |
|
1679 data = base85.b85decode(remoteobs['dump']) |
|
1680 self.obsstore.mergemarkers(data) |
1677 finally: |
1681 finally: |
1678 lock.release() |
1682 lock.release() |
1679 |
1683 |
1680 return result |
1684 return result |
1681 |
1685 |
1812 str(phases.draft), |
1816 str(phases.draft), |
1813 str(phases.public)) |
1817 str(phases.public)) |
1814 if not r: |
1818 if not r: |
1815 self.ui.warn(_('updating %s to public failed!\n') |
1819 self.ui.warn(_('updating %s to public failed!\n') |
1816 % newremotehead) |
1820 % newremotehead) |
|
1821 if 'obsolete' in self.listkeys('namespaces') and self.obsstore: |
|
1822 data = self.obsstore._writemarkers() |
|
1823 r = remote.pushkey('obsolete', 'dump', '', |
|
1824 base85.b85encode(data)) |
|
1825 if not r: |
|
1826 self.ui.warn(_('failed to push obsolete markers!\n')) |
1817 finally: |
1827 finally: |
1818 if lock is not None: |
1828 if lock is not None: |
1819 lock.release() |
1829 lock.release() |
1820 finally: |
1830 finally: |
1821 locallock.release() |
1831 locallock.release() |