mercurial/localrepo.py
changeset 17075 28ed1c4511ce
parent 17070 ad0d6c2b3279
child 17124 f1b7683f3f95
child 17137 b090601a80d1
equal deleted inserted replaced
17074:178a2e85d426 17075:28ed1c4511ce
     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()