# HG changeset patch # User Augie Fackler # Date 1334964907 18000 # Node ID 6cee57ad90456c97fd23fe80f293bedbd973cb96 # Parent 2c9f4c1686faf483228a9de32db63a084a7ac5f7 pickle_atomic: unbreak old hg versions hg that use rename() instead of close() diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py --- a/hgsubversion/svnmeta.py +++ b/hgsubversion/svnmeta.py @@ -19,9 +19,14 @@ def pickle_atomic(data, file_path): This is present because I kept corrupting my revmap by managing to hit ^C during the pickle of that file. """ - f = hgutil.atomictempfile(file_path, createmode=0644) + f = hgutil.atomictempfile(file_path, 'w+b', 0644) pickle.dump(data, f) - f.close() + # Older versions of hg have .rename() instead of .close on + # atomictempfile. + if getattr(hgutil.atomictempfile, 'rename', False): + f.rename() + else: + f.close() class SVNMeta(object):