# HG changeset patch # User Matt Harbison # Date 1419991972 18000 # Node ID 304e69cb1ee95743e95a17f6f283e8ccf2bf66ea # Parent 49caef4559126a07f6070b789db7992e8cd684ce largefiles: enable subrepo support for remove Previously, remove failed when operating on a largefile in a subrepo, stating that the file is untracked. diff -r 49caef455912 -r 304e69cb1ee9 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Thu Jan 08 21:36:12 2015 -0800 +++ b/hgext/largefiles/overrides.py Tue Dec 30 21:12:52 2014 -0500 @@ -260,12 +260,11 @@ return (result == 1 or bad) and 1 or 0 -def overrideremove(orig, ui, repo, *pats, **opts): - installnormalfilesmatchfn(repo[None].manifest()) - result = orig(ui, repo, *pats, **opts) - restorematchfn() - matcher = scmutil.match(repo[None], pats, opts) - return removelargefiles(ui, repo, False, matcher, **opts) or result +def cmdutilremove(orig, ui, repo, matcher, prefix, after, force, subrepos): + normalmatcher = composenormalfilematcher(matcher, repo[None].manifest()) + result = orig(ui, repo, normalmatcher, prefix, after, force, subrepos) + return removelargefiles(ui, repo, False, matcher, after=after, + force=force) or result def overridestatusfn(orig, repo, rev2, **opts): try: diff -r 49caef455912 -r 304e69cb1ee9 hgext/largefiles/uisetup.py --- a/hgext/largefiles/uisetup.py Thu Jan 08 21:36:12 2015 -0800 +++ b/hgext/largefiles/uisetup.py Tue Dec 30 21:12:52 2014 -0500 @@ -33,8 +33,7 @@ # and in the process of handling commit -A (issue3542) entry = extensions.wrapfunction(scmutil, 'addremove', overrides.scmutiladdremove) - entry = extensions.wrapcommand(commands.table, 'remove', - overrides.overrideremove) + extensions.wrapfunction(cmdutil, 'remove', overrides.cmdutilremove) entry = extensions.wrapcommand(commands.table, 'forget', overrides.overrideforget) diff -r 49caef455912 -r 304e69cb1ee9 tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t Thu Jan 08 21:36:12 2015 -0800 +++ b/tests/test-largefiles-misc.t Tue Dec 30 21:12:52 2014 -0500 @@ -362,6 +362,9 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg status -S + $ hg rm -v subrepo/large.txt + removing subrepo/large.txt (glob) + $ hg revert -R subrepo subrepo/large.txt $ rm subrepo/large.txt $ hg addremove -S removing subrepo/large.txt