diff hgext/lfs/wrapper.py @ 35363:b0ba1539af01

lfs: restore the local blob store after a repo upgrade This also ends up testing the local extension wrapping for dstrepo during upgrade, which was fixed in 06987c6971be.
author Matt Harbison <matt_harbison@yahoo.com>
date Fri, 08 Dec 2017 00:18:30 -0500
parents 9eb19b13e92a
children a7ff4071c8aa
line wrap: on
line diff
--- a/hgext/lfs/wrapper.py	Thu Dec 07 23:44:06 2017 -0500
+++ b/hgext/lfs/wrapper.py	Fri Dec 08 00:18:30 2017 -0500
@@ -19,6 +19,8 @@
     util,
 )
 
+from ..largefiles import lfutil
+
 from . import (
     blobstore,
     pointer,
@@ -303,6 +305,17 @@
     remoteblob = repo.svfs.lfsremoteblobstore
     remoteblob.writebatch(pointers, repo.svfs.lfslocalblobstore)
 
+def upgradefinishdatamigration(orig, ui, srcrepo, dstrepo, requirements):
+    orig(ui, srcrepo, dstrepo, requirements)
+
+    srclfsvfs = srcrepo.svfs.lfslocalblobstore.vfs
+    dstlfsvfs = dstrepo.svfs.lfslocalblobstore.vfs
+
+    for dirpath, dirs, files in srclfsvfs.walk():
+        for oid in files:
+            srcrepo.ui.write(_('copying lfs blob %s\n') % oid)
+            lfutil.link(srclfsvfs.join(oid), dstlfsvfs.join(oid))
+
 def upgraderequirements(orig, repo):
     reqs = orig(repo)
     if 'lfs' in repo.requirements: