# HG changeset patch -- Bitbucket.org # Project stable # URL http://bitbucket.org/tortoisehg/stable/overview/ # User Steve Borho # Date 1246839916 18000 # Node ID c3647813ddd0ccbaa7e3e11856278e2ec66f2352 # Parent 4e02beaf36d82d80c15ab59953329fb66c8cd9fb vdiff: catch IOErrors when deleting tempfiles Try to do something sane when the user closes the visual diff dialog while diff tools hold files open (only an issue on Windows where you cannot typically delete open files). Fixes #362 --- a/hggtk/visdiff.py +++ b/hggtk/visdiff.py @@ -205,7 +205,18 @@ class FileSelectionDialog(gtk.Dialog): vsettings = settings.Settings('visdiff') vsettings.set_value('launchsingle', self.singlecheck.get_active()) vsettings.write() - shutil.rmtree(tmproot) + while True: + try: + shutil.rmtree(tmproot) + return + except IOError: + resp = gdialog.CustomPrompt(_('Unable to delete temp files'), + _('Close diff tools and try again, or quit to leak files?'), + self, (_('Try &Again'), _('&Quit')), _('q')).run() + if resp == ord(_('a')): + continue + else: + return def rowactivated(self, tree, path, column): selection = tree.get_selection()