Mercurial > hgsubversion
comparison fetch_command.py @ 32:d01196ca1e39
Fix non-atomic write of the last_revision_handled_file which was causing
problems if the write got interrupted in the wrong spot.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Wed, 15 Oct 2008 13:29:20 -0500 |
parents | 575bd29bc1d8 |
children | a9c15cae50e5 |
comparison
equal
deleted
inserted
replaced
31:05800c403321 | 32:d01196ca1e39 |
---|---|
85 have_replay = False | 85 have_replay = False |
86 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) | 86 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) |
87 else: | 87 else: |
88 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) | 88 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) |
89 converted = True | 89 converted = True |
90 open(hg_editor.last_revision_handled_file, | 90 tmpfile = '%s_tmp' % hg_editor.last_revision_handled_file |
91 'w').write(str(r.revnum)) | 91 fp = open(tmpfile, 'w') |
92 fp.write(str(r.revnum)) | |
93 fp.close() | |
94 merc_util.rename(tmpfile, | |
95 hg_editor.last_revision_handled_file) | |
92 except core.SubversionException, e: | 96 except core.SubversionException, e: |
93 if hasattr(e, 'message') and ( | 97 if hasattr(e, 'message') and ( |
94 'Server sent unexpected return value (502 Bad Gateway)' | 98 'Server sent unexpected return value (502 Bad Gateway)' |
95 ' in response to PROPFIND') in e.message: | 99 ' in response to PROPFIND') in e.message: |
96 tries += 1 | 100 tries += 1 |