Bryan O'Sullivan avatar Bryan O'Sullivan committed b62fff7

buildmeta: only write the uuid file if needed

We used to write it unconditionally.

Comments (0)

Files changed (1)


     return _buildmeta(ui, repo, args, partial=False,
+def write_if_needed(path, content):
+    try:
+        fp = open(path)
+        mustwrite = != content
+        fp.close()
+    except IOError, err:
+        if err.errno != errno.ENOENT:
+            raise
+        mustwrite = True
+    if mustwrite:
+        fp = open(path, 'w')
+        fp.write(content)
+        fp.close()
 def _buildmeta(ui, repo, args, partial=False, skipuuid=False):
     if repo is None:
                 if uuid != svn.uuid:
                     raise hgutil.Abort('remote svn repository identifier '
                                        'does not match')
-            uuidfile = open(os.path.join(svnmetadir, 'uuid'), 'w')
-            uuidfile.write(svn.uuid)
-            uuidfile.close()
+            write_if_needed(os.path.join(svnmetadir, 'uuid'), uuid)
         # don't reflect closed branches
         if (ctx.extra().get('close') and not ctx.files() or
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.