[PATCH] shrink-revlog: use util.mktempcopy() to preserve mode of index file

Greg Ward greg-hg at gerg.ca
Thu Jun 3 14:20:26 UTC 2010


# HG changeset patch
# User Greg Ward <greg-hg at gerg.ca>
# Date 1275574713 14400
# Branch stable
# Node ID 8de08ef7d70a84d9e4aa81d18463209469fd3bf7
# Parent  d3ebb1a0bc49559e1e41d37f69c2afa06722563e
shrink-revlog: use util.mktempcopy() to preserve mode of index file.

(There's still a chmod() call to manually preserve the mode of the
data file.)

diff --git a/contrib/shrink-revlog.py b/contrib/shrink-revlog.py
--- a/contrib/shrink-revlog.py
+++ b/contrib/shrink-revlog.py
@@ -147,10 +147,7 @@
 
     ui.write(_('shrinking %s\n') % indexfn)
     prefix = os.path.basename(indexfn)[:-1]
-    (tmpfd, tmpindexfn) = tempfile.mkstemp(dir=os.path.dirname(indexfn),
-                                           prefix=prefix,
-                                           suffix='.i')
-    os.close(tmpfd)
+    tmpindexfn = util.mktempcopy(indexfn, emptyok=True)
 
     r1 = revlog.revlog(util.opener(os.getcwd(), audit=False), indexfn)
     r2 = revlog.revlog(util.opener(os.getcwd(), audit=False), tmpindexfn)
@@ -203,9 +200,6 @@
             util.os_link(indexfn, oldindexfn)
             ignoremissing(util.os_link)(datafn, olddatafn)
 
-            # mkstemp() creates files only readable by the owner
-            os.chmod(tmpindexfn, os.stat(indexfn).st_mode)
-
             # rename
             util.rename(tmpindexfn, indexfn)
             try:



More information about the Mercurial-devel mailing list