Mercurial > public > mercurial-scm > hg
diff tests/test-largefiles-update.t @ 30191:328545c7d8a1 stable
largefiles: fix 'deleted' files sometimes persistently appearing with R status
A code snippet that has been around since largefiles was introduced was wrong:
Standins no longer found in lfdirstate has *not* been removed -
they have probably just been deleted ... or not created.
This wrong reporting did that 'up -C' didn't undo the change and didn't sync
the two dirstates.
Instead of reporting such files as removed, propagate the deletion to the
standin file and report the file as deleted.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 17 Oct 2016 17:12:24 +0200 |
parents | 56b930238036 |
children | 438173c41587 |
line wrap: on
line diff
--- a/tests/test-largefiles-update.t Sun Oct 16 02:29:45 2016 +0200 +++ b/tests/test-largefiles-update.t Mon Oct 17 17:12:24 2016 +0200 @@ -751,30 +751,22 @@ $ hg up -Cr "8" --config extensions.crashupdatelfiles=../crashupdatelfiles.py [7] Check large1 content and status ... and that update will undo modifications: -BUG: large is R $ cat large1 large1 in #3 $ hg st M large1 - R largeX + ! largeX $ hg up -Cr . getting changed largefiles - 1 largefiles updated, 0 removed - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + 2 largefiles updated, 0 removed + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat large1 manually modified before 'hg transplant --continue' $ hg st - R largeX -Force largefiles rehashing and check again - which makes it realize that largeX -not has been removed but just doesn't exist: +Force largefiles rehashing and check that all changes have been caught by +status and update: $ rm .hg/largefiles/dirstate $ hg st - ! largeX - $ hg up -Cr . - getting changed largefiles - 1 largefiles updated, 0 removed - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg st $ cd ..