mercurial/changegroup.py
changeset 32930 af31d531dda0
parent 32926 038bfc384271
child 32931 b08431e1b062
equal deleted inserted replaced
32929:d11e2343762b 32930:af31d531dda0
   254         self.manifestheader()
   254         self.manifestheader()
   255         repo.manifestlog._revlog.addgroup(self, revmap, trp)
   255         repo.manifestlog._revlog.addgroup(self, revmap, trp)
   256         repo.ui.progress(_('manifests'), None)
   256         repo.ui.progress(_('manifests'), None)
   257         self.callback = None
   257         self.callback = None
   258 
   258 
   259     def apply(self, repo, srctype, url, emptyok=False,
   259     def apply(self, repo, tr, srctype, url, emptyok=False,
   260               targetphase=phases.draft, expectedtotal=None):
   260               targetphase=phases.draft, expectedtotal=None):
   261         """Add the changegroup returned by source.read() to this repo.
   261         """Add the changegroup returned by source.read() to this repo.
   262         srctype is a string like 'push', 'pull', or 'unbundle'.  url is
   262         srctype is a string like 'push', 'pull', or 'unbundle'.  url is
   263         the URL of the repo where this changegroup is coming from.
   263         the URL of the repo where this changegroup is coming from.
   264 
   264 
   277             return cl.rev(x)
   277             return cl.rev(x)
   278 
   278 
   279         changesets = files = revisions = 0
   279         changesets = files = revisions = 0
   280 
   280 
   281         try:
   281         try:
   282             with repo.transaction("\n".join([srctype,
   282             if True:
   283                                              util.hidepassword(url)])) as tr:
   283                 # The transaction may already carry source information. In this
   284                 # The transaction could have been created before and already
   284                 # case we use the top level data. We overwrite the argument
   285                 # carries source information. In this case we use the top
   285                 # because we need to use the top level value (if they exist)
   286                 # level data. We overwrite the argument because we need to use
   286                 # in this function.
   287                 # the top level value (if they exist) in this function.
       
   288                 srctype = tr.hookargs.setdefault('source', srctype)
   287                 srctype = tr.hookargs.setdefault('source', srctype)
   289                 url = tr.hookargs.setdefault('url', url)
   288                 url = tr.hookargs.setdefault('url', url)
   290                 repo.hook('prechangegroup', throw=True, **tr.hookargs)
   289                 repo.hook('prechangegroup', throw=True, **tr.hookargs)
   291 
   290 
   292                 # write changelog data to temp files so concurrent readers
   291                 # write changelog data to temp files so concurrent readers