Mercurial > public > mercurial-scm > hg-stable
diff mercurial/dispatch.py @ 13382:d747774ca9da
Make sure bundlerepo doesn't leak temp files (issue2491)
Add empty repository.close() and call it in dispatch.
Remove bundlerepository.__del__(), merging it into bundlerepository.close(),
which overrides repository.close().
http://docs.python.org/reference/datamodel.html says:
"It is not guaranteed that __del__() methods are called for objects that
still exist when the interpreter exits."
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Sat, 12 Feb 2011 10:58:11 +0100 |
parents | a939f08fae9c |
children | 777cef34a890 |
line wrap: on
line diff
--- a/mercurial/dispatch.py Fri Feb 11 19:32:49 2011 +0100 +++ b/mercurial/dispatch.py Sat Feb 12 10:58:11 2011 +0100 @@ -589,8 +589,12 @@ msg = ' '.join(' ' in a and repr(a) or a for a in fullargs) ui.log("command", msg + "\n") d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) - return runcommand(lui, repo, cmd, fullargs, ui, options, d, - cmdpats, cmdoptions) + try: + return runcommand(lui, repo, cmd, fullargs, ui, options, d, + cmdpats, cmdoptions) + finally: + if repo: + repo.close() def _runcommand(ui, options, cmd, cmdfunc): def checkargs():