mercurial/upgrade.py
changeset 33438 8056481caa81
parent 32291 bd872f64a8ba
child 35302 ad2b35ebf670
--- a/mercurial/upgrade.py	Mon Aug 08 18:14:42 2016 +0200
+++ b/mercurial/upgrade.py	Thu Jul 13 18:31:35 2017 -0700
@@ -792,35 +792,33 @@
     upgradeactions = [a.name for a in actions]
 
     ui.write(_('beginning upgrade...\n'))
-    with repo.wlock():
-        with repo.lock():
-            ui.write(_('repository locked and read-only\n'))
-            # Our strategy for upgrading the repository is to create a new,
-            # temporary repository, write data to it, then do a swap of the
-            # data. There are less heavyweight ways to do this, but it is easier
-            # to create a new repo object than to instantiate all the components
-            # (like the store) separately.
-            tmppath = tempfile.mkdtemp(prefix='upgrade.', dir=repo.path)
-            backuppath = None
-            try:
-                ui.write(_('creating temporary repository to stage migrated '
-                           'data: %s\n') % tmppath)
-                dstrepo = localrepo.localrepository(repo.baseui,
-                                                    path=tmppath,
-                                                    create=True)
+    with repo.wlock(), repo.lock():
+        ui.write(_('repository locked and read-only\n'))
+        # Our strategy for upgrading the repository is to create a new,
+        # temporary repository, write data to it, then do a swap of the
+        # data. There are less heavyweight ways to do this, but it is easier
+        # to create a new repo object than to instantiate all the components
+        # (like the store) separately.
+        tmppath = tempfile.mkdtemp(prefix='upgrade.', dir=repo.path)
+        backuppath = None
+        try:
+            ui.write(_('creating temporary repository to stage migrated '
+                       'data: %s\n') % tmppath)
+            dstrepo = localrepo.localrepository(repo.baseui,
+                                                path=tmppath,
+                                                create=True)
 
-                with dstrepo.wlock():
-                    with dstrepo.lock():
-                        backuppath = _upgraderepo(ui, repo, dstrepo, newreqs,
-                                                  upgradeactions)
+            with dstrepo.wlock(), dstrepo.lock():
+                backuppath = _upgraderepo(ui, repo, dstrepo, newreqs,
+                                          upgradeactions)
 
-            finally:
-                ui.write(_('removing temporary repository %s\n') % tmppath)
-                repo.vfs.rmtree(tmppath, forcibly=True)
+        finally:
+            ui.write(_('removing temporary repository %s\n') % tmppath)
+            repo.vfs.rmtree(tmppath, forcibly=True)
 
-                if backuppath:
-                    ui.warn(_('copy of old repository backed up at %s\n') %
-                            backuppath)
-                    ui.warn(_('the old repository will not be deleted; remove '
-                              'it to free up disk space once the upgraded '
-                              'repository is verified\n'))
+            if backuppath:
+                ui.warn(_('copy of old repository backed up at %s\n') %
+                        backuppath)
+                ui.warn(_('the old repository will not be deleted; remove '
+                          'it to free up disk space once the upgraded '
+                          'repository is verified\n'))