I think hg move breaks dirstate if largefiles are enabled and hg move is executed not from the top of repository. See following test example: $ hg --version Mercurial Distributed SCM (version 2.2.2) (see http://mercurial.selenic.com for more information) Copyright (C) 2005-2012 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ hg init mv_test_dir $ cd mv_test_dir # create nested directories with largefile in it $ mkdir dira $ mkdir dira/dirb $ touch dira/dirb/largefile $ hg add --large dira/dirb/largefile $ hg commit -m added # dive into repository $ cd dira # NOK some strange error $ hg mv dirb dirb_moved moving ../.hglf/dira/dirb/largefile to ../.hglf/dira/dirb_moved/largefile abort: No such file or directory $ hg commit -m moved # NOK status broken and shows strange state $ hg status R dira/dirb_moved/largefile # NOK content of dira is strange (notice dira is again in dira) $ ls dira dirb_moved hg update --clean fixes everything. workaround is to execute hg move from root of repository.
Fix here: http://selenic.com/hg/rev/6e84171a61c8
Mass close old bugs in testing.