Mercurial > hg-git
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 |