mercurial/exchange.py
changeset 32843 a470bbb4e3af
parent 32709 16ada4cbb1a9
child 32845 58a6f64a7018
equal deleted inserted replaced
32842:97a4d09f5140 32843:a470bbb4e3af
  1987     items = sorted(clonebundleentry(v, prefers) for v in entries)
  1987     items = sorted(clonebundleentry(v, prefers) for v in entries)
  1988     return [i.value for i in items]
  1988     return [i.value for i in items]
  1989 
  1989 
  1990 def trypullbundlefromurl(ui, repo, url):
  1990 def trypullbundlefromurl(ui, repo, url):
  1991     """Attempt to apply a bundle from a URL."""
  1991     """Attempt to apply a bundle from a URL."""
  1992     lock = repo.lock()
  1992     with repo.lock(), repo.transaction('bundleurl') as tr:
  1993     try:
       
  1994         tr = repo.transaction('bundleurl')
       
  1995         try:
  1993         try:
  1996             try:
  1994             fh = urlmod.open(ui, url)
  1997                 fh = urlmod.open(ui, url)
  1995             cg = readbundle(ui, fh, 'stream')
  1998                 cg = readbundle(ui, fh, 'stream')
  1996 
  1999 
  1997             if isinstance(cg, bundle2.unbundle20):
  2000                 if isinstance(cg, bundle2.unbundle20):
  1998                 bundle2.processbundle(repo, cg, lambda: tr)
  2001                     bundle2.processbundle(repo, cg, lambda: tr)
  1999             elif isinstance(cg, streamclone.streamcloneapplier):
  2002                 elif isinstance(cg, streamclone.streamcloneapplier):
  2000                 cg.apply(repo)
  2003                     cg.apply(repo)
  2001             else:
  2004                 else:
  2002                 cg.apply(repo, 'clonebundles', url)
  2005                     cg.apply(repo, 'clonebundles', url)
  2003             return True
  2006                 tr.close()
  2004         except urlerr.httperror as e:
  2007                 return True
  2005             ui.warn(_('HTTP error fetching bundle: %s\n') % str(e))
  2008             except urlerr.httperror as e:
  2006         except urlerr.urlerror as e:
  2009                 ui.warn(_('HTTP error fetching bundle: %s\n') % str(e))
  2007             ui.warn(_('error fetching bundle: %s\n') % e.reason)
  2010             except urlerr.urlerror as e:
  2008 
  2011                 ui.warn(_('error fetching bundle: %s\n') % e.reason)
  2009         return False
  2012 
       
  2013             return False
       
  2014         finally:
       
  2015             tr.release()
       
  2016     finally:
       
  2017         lock.release()