comparison hggit/__init__.py @ 841:ef904bd8d3fb

exchangepull: fixup for introduction of transaction manager upstream Mercurial rev 52db731b964d introduced a transaction manager upstream. This means that the closetransaction and releasetransaction methods on the pull operation have gone away.
author Siddharth Agarwal <sid0@fb.com>
date Fri, 05 Dec 2014 16:40:34 -0800
parents e5450a81676e
children 05eb0874fa30
comparison
equal deleted inserted replaced
840:edcdb7620f4d 841:ef904bd8d3fb
217 extensions.wrapfunction(hg, 'peer', peer) 217 extensions.wrapfunction(hg, 'peer', peer)
218 218
219 @util.transform_notgit 219 @util.transform_notgit
220 def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=()): 220 def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=()):
221 if isinstance(remote, gitrepo.gitrepo): 221 if isinstance(remote, gitrepo.gitrepo):
222 # transaction manager is present in Mercurial >= 3.3
223 trmanager = getattr(exchange, 'transactionmanager')
222 pullop = exchange.pulloperation(repo, remote, heads, force, 224 pullop = exchange.pulloperation(repo, remote, heads, force,
223 bookmarks=bookmarks) 225 bookmarks=bookmarks)
226 if trmanager:
227 pullop.trmanager = trmanager(repo, 'pull', remote.url())
224 lock = repo.lock() 228 lock = repo.lock()
225 try: 229 try:
226 pullop.cgresult = repo.githandler.fetch(remote.path, heads) 230 pullop.cgresult = repo.githandler.fetch(remote.path, heads)
227 pullop.closetransaction() 231 if trmanager:
232 pullop.trmanager.close()
233 else:
234 pullop.closetransaction()
228 return pullop 235 return pullop
229 finally: 236 finally:
230 pullop.releasetransaction() 237 if trmanager:
238 pullop.trmanager.release()
239 else:
240 pullop.releasetransaction()
231 lock.release() 241 lock.release()
232 else: 242 else:
233 return orig(repo, remote, heads, force, bookmarks=bookmarks) 243 return orig(repo, remote, heads, force, bookmarks=bookmarks)
234 if not hgutil.safehasattr(localrepo.localrepository, 'pull'): 244 if not hgutil.safehasattr(localrepo.localrepository, 'pull'):
235 # Mercurial >= 3.2 245 # Mercurial >= 3.2