##// END OF EJS Templates
largefiles: for update -C, only update largefiles when necessary...
largefiles: for update -C, only update largefiles when necessary Before, a --clean update with largefiles would use the "optimization" that it didn't read hashes from standin files before and after the update. Instead of trusting the content of the standin files, it would rehash all the actual largefiles that lfdirstate reported clean and update the standins that didn't have the expected content. It could thus in some "impossible" situations automatically recover from some "largefile got out sync with its standin" issues (even there apparently still were weird corner cases where it could fail). This extra checking is similar to what core --clean intentionally do not do, and it made update --clean unbearable slow. Usually in core Mercurial, --clean will rely on the dirstate to find the files it should update. (It is thus intentionally possible (when trying to trick the system or if there should be bugs) to end up in situations where --clean not will restore the working directory content correctly.) Checking every file when we "know" it is ok is however not an option - that would be too slow. Instead, trust the content of the standin files. Use the same logic for --clean as for linear updates and trust the dirstate and that our "logic" will keep them in sync. It is much cheaper to just rehash the largefiles reported dirty by a status walk and read all standins than to hash largefiles. Most of the changes are just a change of indentation now when the different kinds of updates no longer are handled that differently. Standins for added files are however only written when doing a normal update, while deleted and removed files only will be updated for --clean updates.

File last commit:

r20045:b3684fd2 default
r24787:9d5c2789 default
Show More
test-filecache.py.out
60 lines | 1.1 KiB | text/plain | TextLexer
/ tests / test-filecache.py.out
Idan Kamara
scmutil: introduce filecache...
r14928 basic:
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * neither file exists
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * neither file still exists
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * empty file x created
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * file x changed size
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * nothing changed with either file
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * file x changed inode
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * empty file y created
creating
* file y changed size
creating
* file y changed inode
creating
* both files changed inode
creating
Idan Kamara
scmutil: introduce filecache...
r14928
fakeuncacheable:
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * neither file exists
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * neither file still exists
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * empty file x created
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * file x changed size
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * nothing changed with either file
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * file x changed inode
Idan Kamara
scmutil: introduce filecache...
r14928 creating
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * empty file y created
creating
* file y changed size
creating
* file y changed inode
creating
* both files changed inode
creating
Idan Kamara
destroyed: keep the filecache in sync with __dict__ (issue3335) (issue3693) (issue3743)...
r18313 repository tip rolled back to revision -1 (undo commit)
working directory now based on revision -1
repository tip rolled back to revision -1 (undo commit)
working directory now based on revision -1
Idan Kamara
filecache: create an entry in _filecache when __set__ is called for a missing one...
r18316
setbeforeget:
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * neither file exists
Siddharth Agarwal
test-filecache.py: make setbeforeget test clearer...
r20040 string set externally
Siddharth Agarwal
test-filecache.py: add markers to the output for each event...
r20041 * file x created
Idan Kamara
filecache: create an entry in _filecache when __set__ is called for a missing one...
r18316 creating
Siddharth Agarwal
test-filecache.py: make setbeforeget test clearer...
r20040 string from function
Siddharth Agarwal
scmutil.filecache: support watching over multiple files
r20045 * string set externally again
string 2 set externally
* file y created
creating
string from function