diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -260,12 +260,11 @@ def overrideadd(orig, ui, repo, *pats, * 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 --git a/hgext/largefiles/uisetup.py b/hgext/largefiles/uisetup.py --- a/hgext/largefiles/uisetup.py +++ b/hgext/largefiles/uisetup.py @@ -33,8 +33,7 @@ def uisetup(ui): # 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 --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t +++ b/tests/test-largefiles-misc.t @@ -362,6 +362,9 @@ Test update with subrepos. 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