diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -189,8 +189,15 @@ def removelargefiles(ui, repo, isaddremo # are removing the file. if isaddremove: ui.status(_('removing %s\n') % f) - util.unlinkpath(repo.wjoin(f), ignoremissing=True) - lfdirstate.remove(f) + + if not opts.get('dry_run'): + if not after: + util.unlinkpath(repo.wjoin(f), ignoremissing=True) + lfdirstate.remove(f) + + if opts.get('dry_run'): + return result + lfdirstate.write() remove = [lfutil.standin(f) for f in remove] # If this is being called by addremove, let the original addremove 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 @@ -250,6 +250,16 @@ verify that large files in subrepos hand Add a normal file to the subrepo, then test archiving $ echo 'normal file' > subrepo/normal.txt + $ mv subrepo/large.txt subrepo/renamed-large.txt + $ hg -R subrepo addremove --dry-run + removing large.txt + adding normal.txt + adding renamed-large.txt + $ hg status -S + ! subrepo/large.txt + ? subrepo/normal.txt + ? subrepo/renamed-large.txt + $ mv subrepo/renamed-large.txt subrepo/large.txt $ hg -R subrepo add subrepo/normal.txt Lock in subrepo, otherwise the change isn't archived