Mercurial > hg
view hgext/largefiles/CONTRIBUTORS @ 23618:9dd5dfeaab4c stable
largefiles: fix a spurious missing file warning with 'remove -A' (issue4053)
The bug report doesn't mention largefiles, but the given recipe doesn't fail
unless the largefiles extension is loaded. The problem only affected normal
files, whether or not any largefiles are committed, and only files that have
not been committed yet. (Files with an 'a' state are dropped from dirstate,
not marked removed.) Further, if the named normal file never existed, the
warning would be printed out twice.
The problem is that the core implementation of remove() calls repo.status(),
which eventually triggers a dirstate.walk(). When the file isn't seen in the
filesystem during the walk, the exception handling finds the file in
dirstate, so it doesn't complain. However, the largefiles implementation
called status() again with all of the original files (including the normal
ones, just dropped). This time, the exception handler doesn't find the file
in dirstate and does complain. This simply excludes the normal files from
the second repo.status() call, which the largefiles extension has no interest
is processing anyway.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 21 Dec 2014 15:04:13 -0500 |
parents | cfccd3bee7b3 |
children |
line wrap: on
line source
Greg Ward, author of the original bfiles extension Na'Tosha Bard of Unity Technologies Fog Creek Software Special thanks to the University of Toronto and the UCOSP program