# HG changeset patch # User Matt Harbison # Date 1491958490 14400 # Node ID 9e67ce5c4fd098fe751055d90ab2f72867303edb # Parent 87f293edabb6fde8bf1c598a456398d18bd3827b largefiles: set the extension as enabled locally after a share requiring it This has been done for clone since e1dbe0b215ae, so it makes sense here for the same reasons. diff -r 87f293edabb6 -r 9e67ce5c4fd0 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Tue Apr 11 21:38:11 2017 -0400 +++ b/hgext/largefiles/overrides.py Tue Apr 11 20:54:50 2017 -0400 @@ -903,6 +903,14 @@ return result +def hgpostshare(orig, sourcerepo, destrepo, bookmarks=True, defaultpath=None): + orig(sourcerepo, destrepo, bookmarks, defaultpath) + + # If largefiles is required for this repo, permanently enable it locally + if 'largefiles' in destrepo.requirements: + with destrepo.vfs('hgrc', 'a+', text=True) as fp: + fp.write('\n[extensions]\nlargefiles=\n') + def overriderebase(orig, ui, repo, **opts): if not util.safehasattr(repo, '_largefilesenabled'): return orig(ui, repo, **opts) diff -r 87f293edabb6 -r 9e67ce5c4fd0 hgext/largefiles/uisetup.py --- a/hgext/largefiles/uisetup.py Tue Apr 11 21:38:11 2017 -0400 +++ b/hgext/largefiles/uisetup.py Tue Apr 11 20:54:50 2017 -0400 @@ -120,6 +120,7 @@ _('download all versions of all largefiles'))] entry[1].extend(cloneopt) entry = extensions.wrapfunction(hg, 'clone', overrides.hgclone) + entry = extensions.wrapfunction(hg, 'postshare', overrides.hgpostshare) entry = extensions.wrapcommand(commands.table, 'cat', overrides.overridecat) diff -r 87f293edabb6 -r 9e67ce5c4fd0 tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t Tue Apr 11 21:38:11 2017 -0400 +++ b/tests/test-largefiles-misc.t Tue Apr 11 20:54:50 2017 -0400 @@ -212,6 +212,18 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: add files +sharing a largefile repo automatically enables largefiles on the share + + $ hg share --config extensions.share= . ../shared_lfrepo + updating working directory + getting changed largefiles + 1 largefiles updated, 0 removed + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat ../shared_lfrepo/.hg/hgrc + + [extensions] + largefiles= + verify that large files in subrepos handled properly $ hg init subrepo $ echo "subrepo = subrepo" > .hgsub diff -r 87f293edabb6 -r 9e67ce5c4fd0 tests/test-share.t --- a/tests/test-share.t Tue Apr 11 21:38:11 2017 -0400 +++ b/tests/test-share.t Tue Apr 11 20:54:50 2017 -0400 @@ -240,6 +240,14 @@ bm3 4:62f4ded848e4 $ cd .. +non largefiles repos won't enable largefiles + + $ hg share --config extensions.largefiles= repo3 sharedrepo + updating working directory + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ [ -f sharedrepo/.hg/hgrc ] + [1] + test pushing bookmarks works $ hg clone repo3 repo4