Show More
@@ -1885,6 +1885,13 b' coreconfigitem(' | |||
|
1885 | 1885 | default=b'skip', |
|
1886 | 1886 | experimental=True, |
|
1887 | 1887 | ) |
|
1888 | # experimental as long as format.exp-dirstate-v2 is. | |
|
1889 | coreconfigitem( | |
|
1890 | b'storage', | |
|
1891 | b'dirstate-v2.slow-path', | |
|
1892 | default=b"abort", | |
|
1893 | experimental=True, | |
|
1894 | ) | |
|
1888 | 1895 | coreconfigitem( |
|
1889 | 1896 | b'storage', |
|
1890 | 1897 | b'new-repo-backend', |
@@ -39,6 +39,8 b' from .interfaces import (' | |||
|
39 | 39 | parsers = policy.importmod('parsers') |
|
40 | 40 | rustmod = policy.importrust('dirstate') |
|
41 | 41 | |
|
42 | HAS_FAST_DIRSTATE_V2 = rustmod is not None | |
|
43 | ||
|
42 | 44 | propertycache = util.propertycache |
|
43 | 45 | filecache = scmutil.filecache |
|
44 | 46 | _rangemask = dirstatemap.rangemask |
@@ -1174,6 +1174,32 b' def resolverevlogstorevfsoptions(ui, req' | |||
|
1174 | 1174 | if slow_path == b'abort': |
|
1175 | 1175 | raise error.Abort(msg, hint=hint) |
|
1176 | 1176 | options[b'persistent-nodemap'] = True |
|
1177 | if requirementsmod.DIRSTATE_V2_REQUIREMENT in requirements: | |
|
1178 | slow_path = ui.config(b'storage', b'dirstate-v2.slow-path') | |
|
1179 | if slow_path not in (b'allow', b'warn', b'abort'): | |
|
1180 | default = ui.config_default(b'storage', b'dirstate-v2.slow-path') | |
|
1181 | msg = _(b'unknown value for config "dirstate-v2.slow-path": "%s"\n') | |
|
1182 | ui.warn(msg % slow_path) | |
|
1183 | if not ui.quiet: | |
|
1184 | ui.warn(_(b'falling back to default value: %s\n') % default) | |
|
1185 | slow_path = default | |
|
1186 | ||
|
1187 | msg = _( | |
|
1188 | b"accessing `dirstate-v2` repository without associated " | |
|
1189 | b"fast implementation." | |
|
1190 | ) | |
|
1191 | hint = _( | |
|
1192 | b"check `hg help config.format.exp-dirstate-v2` " b"for details" | |
|
1193 | ) | |
|
1194 | if not dirstate.HAS_FAST_DIRSTATE_V2: | |
|
1195 | if slow_path == b'warn': | |
|
1196 | msg = b"warning: " + msg + b'\n' | |
|
1197 | ui.warn(msg) | |
|
1198 | if not ui.quiet: | |
|
1199 | hint = b'(' + hint + b')\n' | |
|
1200 | ui.warn(hint) | |
|
1201 | if slow_path == b'abort': | |
|
1202 | raise error.Abort(msg, hint=hint) | |
|
1177 | 1203 | if ui.configbool(b'storage', b'revlog.persistent-nodemap.mmap'): |
|
1178 | 1204 | options[b'persistent-nodemap.mmap'] = True |
|
1179 | 1205 | if ui.configbool(b'devel', b'persistent-nodemap'): |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | $ hg init repo |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | Checking the size/permissions/file-type of files stored in the |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | ------ Test dirstate._dirs refcounting |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | $ hg init ignorerepo |
@@ -3,8 +3,12 b'' | |||
|
3 | 3 | #testcases dirstate-v1 dirstate-v2 |
|
4 | 4 | |
|
5 | 5 | #if dirstate-v2 |
|
6 |
$ |
|
|
7 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
6 | $ cat >> $HGRCPATH << EOF | |
|
7 | > [format] | |
|
8 | > exp-dirstate-v2=1 | |
|
9 | > [storage] | |
|
10 | > dirstate-v2.slow-path=allow | |
|
11 | > EOF | |
|
8 | 12 | #endif |
|
9 | 13 | |
|
10 | 14 | $ hg init t |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | init |
@@ -1,8 +1,12 b'' | |||
|
1 | 1 | #testcases dirstate-v1 dirstate-v2 |
|
2 | 2 | |
|
3 | 3 | #if dirstate-v2 |
|
4 |
$ |
|
|
5 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
4 | $ cat >> $HGRCPATH << EOF | |
|
5 | > [format] | |
|
6 | > exp-dirstate-v2=1 | |
|
7 | > [storage] | |
|
8 | > dirstate-v2.slow-path=allow | |
|
9 | > EOF | |
|
6 | 10 | #endif |
|
7 | 11 | |
|
8 | 12 | $ hg init repo1 |
@@ -3,8 +3,12 b'' | |||
|
3 | 3 | #testcases dirstate-v1 dirstate-v2 |
|
4 | 4 | |
|
5 | 5 | #if dirstate-v2 |
|
6 |
$ |
|
|
7 | $ echo 'exp-dirstate-v2=1' >> $HGRCPATH | |
|
6 | $ cat >> $HGRCPATH << EOF | |
|
7 | > [format] | |
|
8 | > exp-dirstate-v2=1 | |
|
9 | > [storage] | |
|
10 | > dirstate-v2.slow-path=allow | |
|
11 | > EOF | |
|
8 | 12 | #endif |
|
9 | 13 | |
|
10 | 14 | == tests added in 0.7 == |
General Comments 0
You need to be logged in to leave comments.
Login now