summaryrefslogtreecommitdiff
path: root/contrib/mtn2git/status.py
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2008-01-07 17:53:19 +0000
committerHolger Freyther <zecke@selfish.org>2008-01-07 17:53:19 +0000
commit01833126fd02615e7c94e6b4c8577152401883ee (patch)
tree34859fd1505c2c85109de11669e4df09a5173fa4 /contrib/mtn2git/status.py
parent5c31ddaccd475cf14a440b814f9cf1a04db19b91 (diff)
contrib/mtn2git: Ignore unknown certs, try to be more robust against CTRL-C when saving the status
Diffstat (limited to 'contrib/mtn2git/status.py')
-rw-r--r--contrib/mtn2git/status.py11
1 files changed, 9 insertions, 2 deletions
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)