# HG changeset patch # User Pierre-Yves David # Date 1618885623 -7200 # Node ID 0b569c75d1808f05056e3e779993186ceded830f # Parent aed6ceaad6d7f4de350550c7486758ea1290d09d store: exclude `undo.` nodemap's file from `walk` There are "temporary" local file that we should not be transfered by `walk` user like local clone and stream clone. This fix the small issue that the new tests highlighted. Differential Revision: https://phab.mercurial-scm.org/D10482 diff -r aed6ceaad6d7 -r 0b569c75d180 mercurial/store.py --- a/mercurial/store.py Tue Apr 20 05:08:55 2021 +0200 +++ b/mercurial/store.py Tue Apr 20 04:27:03 2021 +0200 @@ -10,6 +10,7 @@ import errno import functools import os +import re import stat from .i18n import _ @@ -395,6 +396,9 @@ # deleted. REVLOG_FILES_VOLATILE_EXT = (b'.n', b'.nd') +# some exception to the above matching +EXCLUDED = re.compile(b'.*undo\.[^/]+\.nd?$') + def is_revlog(f, kind, st): if kind != stat.S_IFREG: @@ -405,7 +409,7 @@ def revlog_type(f): if f.endswith(REVLOG_FILES_MAIN_EXT): return FILEFLAGS_REVLOG_MAIN - elif f.endswith(REVLOG_FILES_OTHER_EXT): + elif f.endswith(REVLOG_FILES_OTHER_EXT) and EXCLUDED.match(f) is None: t = FILETYPE_FILELOG_OTHER if f.endswith(REVLOG_FILES_VOLATILE_EXT): t |= FILEFLAGS_VOLATILE diff -r aed6ceaad6d7 -r 0b569c75d180 tests/test-persistent-nodemap.t --- a/tests/test-persistent-nodemap.t Tue Apr 20 05:08:55 2021 +0200 +++ b/tests/test-persistent-nodemap.t Tue Apr 20 04:27:03 2021 +0200 @@ -988,8 +988,6 @@ $ touch $HG_TEST_STREAM_WALKED_FILE_2 $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3 $ cat clone-output-2 - adding [s] undo.backup.00manifest.n (70 bytes) (known-bad-output !) - adding [s] undo.backup.00changelog.n (70 bytes) (known-bad-output !) adding [s] 00manifest.n (70 bytes) adding [s] 00manifest-*.nd (118 KB) (glob) adding [s] 00changelog.n (70 bytes)