From 01833126fd02615e7c94e6b4c8577152401883ee Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Mon, 7 Jan 2008 17:53:19 +0000 Subject: contrib/mtn2git: Ignore unknown certs, try to be more robust against CTRL-C when saving the status --- contrib/mtn2git/status.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'contrib/mtn2git/status.py') diff --git a/contrib/mtn2git/status.py b/contrib/mtn2git/status.py index 47d06b51fd..bd83f85acf 100644 --- a/contrib/mtn2git/status.py +++ b/contrib/mtn2git/status.py @@ -20,7 +20,7 @@ THE SOFTWARE. """ -import pickle +import os, pickle marks = {} last_mark = 0 @@ -39,9 +39,16 @@ def load(status_name): def store(status_name): global marks, last_mark, mark_file, former_heads, same_revisions - file = open(status_name, "wb") + file = open("%s.tmp-foo" % status_name, "wb") pickle.dump(marks, file) pickle.dump(last_mark, file) pickle.dump(former_heads, file) pickle.dump(same_revisions, file) file.close() + + # Almost atomic rename, without the risk to destroy something + try: + os.remove(status_name) + except: + pass + os.rename("%s.tmp-foo" % status_name, status_name) -- cgit v1.2.3