Consider following script where two directories are created and then moved. One has largefile, the other not. $ hg --version Mercurial Distributed SCM (version 2.2.2+161-efd2e14f7235) # init repo $ hg init mv_test_dir $ cd mv_test_dir $ printf "[extensions]\n\rlargefiles=" > .hg/hgrc # create dir with large file $ mkdir dir_large $ touch dir_large/largefile $ hg add --large dir_large/largefile # create dir with regular file $ mkdir dir $ touch dir/file $ hg add dir/file $ hg commit -m "added" $ hg mv dir_large moved_dir_large moving .hglf/dir_large/largefile to .hglf/moved_dir_large/largefile $ hg mv dir moved_dir moving dir/file to moved_dir/file $ hg commit -m "moved" $ ls dir_large moved_dir moved_dir_large In the end "dir_large" remains on drive despite it is empty. I think it should disappear the same way as "dir" that has no files in it.
*** Bug 3514 has been marked as a duplicate of this bug. ***
Slightly improved version of the test script, retested against 2.2.3+ (67f56ff5afcd): $ echo "[extensions]" >> $HGRCPATH $ echo "largefiles=" >> $HGRCPATH $ hg init mv_test_dir $ cd mv_test_dir Create dir with large file $ mkdir dir_large $ touch dir_large/largefile $ hg add --large dir_large/largefile Create dir with regular file $ mkdir dir $ touch dir/file $ hg add dir/file $ hg commit -m "added" $ hg mv dir_large moved_dir_large moving .hglf/dir_large/largefile to .hglf/moved_dir_large/largefile $ hg mv dir moved_dir moving dir/file to moved_dir/file $ hg commit -m "moved" $ test -d dir_large && echo 'dir_large should have been deleted!'
Fixed by http://selenic.com/repo/hg/rev/5c0d5b95b824 Matt Harbison <matt_harbison@yahoo.com> largefiles: remove directories emptied after their files are moved (issue3515) (please test the fix)