mercurial/localrepo.py
changeset 2816 2a0c599f7bb0
parent 2803 987c31e2a08c
child 2848 e78cad1f6b1f
equal deleted inserted replaced
2815:bce6918b0474 2816:2a0c599f7bb0
  1175         if heads:
  1175         if heads:
  1176             return subset, updated_heads.keys()
  1176             return subset, updated_heads.keys()
  1177         else:
  1177         else:
  1178             return subset
  1178             return subset
  1179 
  1179 
  1180     def pull(self, remote, heads=None, force=False):
  1180     def pull(self, remote, heads=None, force=False, lock=None):
  1181         l = self.lock()
  1181         mylock = False
  1182 
  1182         if not lock:
  1183         fetch = self.findincoming(remote, force=force)
  1183             lock = self.lock()
  1184         if fetch == [nullid]:
  1184             mylock = True
  1185             self.ui.status(_("requesting all changes\n"))
  1185 
  1186 
  1186         try:
  1187         if not fetch:
  1187             fetch = self.findincoming(remote, force=force)
  1188             self.ui.status(_("no changes found\n"))
  1188             if fetch == [nullid]:
  1189             return 0
  1189                 self.ui.status(_("requesting all changes\n"))
  1190 
  1190 
  1191         if heads is None:
  1191             if not fetch:
  1192             cg = remote.changegroup(fetch, 'pull')
  1192                 self.ui.status(_("no changes found\n"))
  1193         else:
  1193                 return 0
  1194             cg = remote.changegroupsubset(fetch, heads, 'pull')
  1194 
  1195         return self.addchangegroup(cg, 'pull', remote.url())
  1195             if heads is None:
       
  1196                 cg = remote.changegroup(fetch, 'pull')
       
  1197             else:
       
  1198                 cg = remote.changegroupsubset(fetch, heads, 'pull')
       
  1199             return self.addchangegroup(cg, 'pull', remote.url())
       
  1200         finally:
       
  1201             if mylock:
       
  1202                 lock.release()
  1196 
  1203 
  1197     def push(self, remote, force=False, revs=None):
  1204     def push(self, remote, force=False, revs=None):
  1198         # there are two ways to push to remote repo:
  1205         # there are two ways to push to remote repo:
  1199         #
  1206         #
  1200         # addchangegroup assumes local user can lock remote
  1207         # addchangegroup assumes local user can lock remote