# HG changeset patch # User Boris Feld # Date 2017-12-07 20:56:18 # Node ID 9eb19b13e92a44675812e27c91bf575f48abbf9d # Parent 6226668a7169e33c5c250dff6e0a2e27b0727ac7 lfs: allow to run 'debugupgraderepo' on repo with largefiles The extensions wrap the necessary function to ensure the 'lfs' requirements won't be dropped. It is now possible to run `hg debugupgraderepo` on a repository with lfs. diff --git a/hgext/lfs/__init__.py b/hgext/lfs/__init__.py --- a/hgext/lfs/__init__.py +++ b/hgext/lfs/__init__.py @@ -46,6 +46,7 @@ from mercurial import ( registrar, revlog, scmutil, + upgrade, vfs as vfsmod, ) @@ -139,6 +140,12 @@ def extsetup(ui): wrapfunction(scmutil, 'wrapconvertsink', wrapper.convertsink) + wrapfunction(upgrade, 'preservedrequirements', + wrapper.upgraderequirements) + + wrapfunction(upgrade, 'supporteddestrequirements', + wrapper.upgraderequirements) + wrapfunction(changegroup, 'supportedoutgoingversions', wrapper.supportedoutgoingversions) diff --git a/hgext/lfs/wrapper.py b/hgext/lfs/wrapper.py --- a/hgext/lfs/wrapper.py +++ b/hgext/lfs/wrapper.py @@ -302,3 +302,9 @@ def uploadblobs(repo, pointers): remoteblob = repo.svfs.lfsremoteblobstore remoteblob.writebatch(pointers, repo.svfs.lfslocalblobstore) + +def upgraderequirements(orig, repo): + reqs = orig(repo) + if 'lfs' in repo.requirements: + reqs.add('lfs') + return reqs