Show More
@@ -894,6 +894,19 b' def _default_clear_on_disk_tags_fnodes_c' | |||||
894 | repo.cachevfs.tryunlink(tags._fnodescachefile) |
|
894 | repo.cachevfs.tryunlink(tags._fnodescachefile) | |
895 |
|
895 | |||
896 |
|
896 | |||
|
897 | def _default_forget_fnodes(repo, revs): | |||
|
898 | """function used by the perf extension to prune some entries from the | |||
|
899 | fnodes cache""" | |||
|
900 | from mercurial import tags | |||
|
901 | ||||
|
902 | missing_1 = b'\xff' * 4 | |||
|
903 | missing_2 = b'\xff' * 20 | |||
|
904 | cache = tags.hgtagsfnodescache(repo.unfiltered()) | |||
|
905 | for r in revs: | |||
|
906 | cache._writeentry(r * tags._fnodesrecsize, missing_1, missing_2) | |||
|
907 | cache.write() | |||
|
908 | ||||
|
909 | ||||
897 | @command( |
|
910 | @command( | |
898 | b'perf::tags|perftags', |
|
911 | b'perf::tags|perftags', | |
899 | formatteropts |
|
912 | formatteropts | |
@@ -907,10 +920,17 b' def _default_clear_on_disk_tags_fnodes_c' | |||||
907 | ), |
|
920 | ), | |
908 | ( |
|
921 | ( | |
909 | b'', |
|
922 | b'', | |
910 | b'clear-fnode-cache', |
|
923 | b'clear-fnode-cache-all', | |
911 | False, |
|
924 | False, | |
912 | b'clear on disk file node cache (DESTRUCTIVE),', |
|
925 | b'clear on disk file node cache (DESTRUCTIVE),', | |
913 | ), |
|
926 | ), | |
|
927 | ( | |||
|
928 | b'', | |||
|
929 | b'clear-fnode-cache-rev', | |||
|
930 | [], | |||
|
931 | b'clear on disk file node cache (DESTRUCTIVE),', | |||
|
932 | b'REVS', | |||
|
933 | ), | |||
914 | ], |
|
934 | ], | |
915 | ) |
|
935 | ) | |
916 | def perftags(ui, repo, **opts): |
|
936 | def perftags(ui, repo, **opts): | |
@@ -927,7 +947,9 b' def perftags(ui, repo, **opts):' | |||||
927 | repocleartagscache = repocleartagscachefunc(repo) |
|
947 | repocleartagscache = repocleartagscachefunc(repo) | |
928 | clearrevlogs = opts[b'clear_revlogs'] |
|
948 | clearrevlogs = opts[b'clear_revlogs'] | |
929 | clear_disk = opts[b'clear_on_disk_cache'] |
|
949 | clear_disk = opts[b'clear_on_disk_cache'] | |
930 | clear_fnode = opts[b'clear_fnode_cache'] |
|
950 | clear_fnode = opts[b'clear_fnode_cache_all'] | |
|
951 | ||||
|
952 | clear_fnode_revs = opts[b'clear_fnode_cache_rev'] | |||
931 |
|
953 | |||
932 | clear_disk_fn = getattr( |
|
954 | clear_disk_fn = getattr( | |
933 | tags, |
|
955 | tags, | |
@@ -939,6 +961,15 b' def perftags(ui, repo, **opts):' | |||||
939 | "clear_cache_fnodes", |
|
961 | "clear_cache_fnodes", | |
940 | _default_clear_on_disk_tags_fnodes_cache, |
|
962 | _default_clear_on_disk_tags_fnodes_cache, | |
941 | ) |
|
963 | ) | |
|
964 | clear_fnodes_rev_fn = getattr( | |||
|
965 | tags, | |||
|
966 | "forget_fnodes", | |||
|
967 | _default_forget_fnodes, | |||
|
968 | ) | |||
|
969 | ||||
|
970 | clear_revs = None | |||
|
971 | if clear_fnode_revs: | |||
|
972 | clear_revs = scmutil.revrange(repo, clear_fnode_revs) | |||
942 |
|
973 | |||
943 | def s(): |
|
974 | def s(): | |
944 | if clearrevlogs: |
|
975 | if clearrevlogs: | |
@@ -948,6 +979,8 b' def perftags(ui, repo, **opts):' | |||||
948 | clear_disk_fn(repo) |
|
979 | clear_disk_fn(repo) | |
949 | if clear_fnode: |
|
980 | if clear_fnode: | |
950 | clear_fnodes_fn(repo) |
|
981 | clear_fnodes_fn(repo) | |
|
982 | elif clear_revs is not None: | |||
|
983 | clear_fnodes_rev_fn(repo, clear_revs) | |||
951 | repocleartagscache() |
|
984 | repocleartagscache() | |
952 |
|
985 | |||
953 | def t(): |
|
986 | def t(): |
@@ -920,3 +920,14 b' def clear_cache_on_disk(repo):' | |||||
920 | def clear_cache_fnodes(repo): |
|
920 | def clear_cache_fnodes(repo): | |
921 | """function used by the perf extension to clear "file node cache""" |
|
921 | """function used by the perf extension to clear "file node cache""" | |
922 | repo.cachevfs.tryunlink(_filename(repo)) |
|
922 | repo.cachevfs.tryunlink(_filename(repo)) | |
|
923 | ||||
|
924 | ||||
|
925 | def forget_fnodes(repo, revs): | |||
|
926 | """function used by the perf extension to prune some entries from the fnodes | |||
|
927 | cache""" | |||
|
928 | missing_1 = b'\xff' * 4 | |||
|
929 | missing_2 = b'\xff' * 20 | |||
|
930 | cache = hgtagsfnodescache(repo.unfiltered()) | |||
|
931 | for r in revs: | |||
|
932 | cache._writeentry(r * _fnodesrecsize, missing_1, missing_2) | |||
|
933 | cache.write() |
General Comments 0
You need to be logged in to leave comments.
Login now