annotate tests/test-status-tracked-key.t @ 50762:c51b178b0b7e

configitems: declare items in a TOML file Mercurial ships with Rust code that also needs to read from the config. Having a way of presenting `configitems` to both Python and Rust is needed to prevent duplication, drift, and have the appropriate devel warnings. Abstracting away from Python means choosing a config format. No single format is perfect, and I have yet to come across a developer that doesn't hate all of them in some way. Since we have a strict no-dependencies policy for Mercurial, we either need to use whatever comes with Python, vendor a library, or implement a custom format ourselves. Python stdlib means using JSON, which doesn't support comments and isn't great for humans, or `configparser` which is an obscure, untyped format that nobody uses and doesn't have a commonplace Rust parser. Implementing a custom format is error-prone, tedious and subject to the same issues as picking an existing format. Vendoring opens us to the vast array of common config formats. The ones being picked for most modern software are YAML and TOML. YAML is older and common in the Python community, but TOML is much simpler and less error-prone. I would much rather be responsible for the <1000 lines of `tomli`, on top of TOML being the choice of the Rust community, with robust crates for reading it. The structure of `configitems.toml` is explained inline.
author Raphaël Gomès <rgomes@octobus.net>
date Mon, 23 Jan 2023 18:08:11 +0100
parents 13c0e3b4fd35
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
1 ===============================
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
2 Test the "tracked hint" feature
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
3 ===============================
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
4
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
5 The tracked hint feature provide a file that get updated when the set of tracked
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
6 files get updated.
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
7
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
8 basic setup
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
9
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
10 $ cat << EOF >> $HGRCPATH
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
11 > [format]
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
12 > use-dirstate-tracked-hint=yes
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
13 > EOF
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
14
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
15 $ hg init tracked-hint-test
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
16 $ cd tracked-hint-test
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
17 $ hg debugbuilddag '.+10' -n
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
18 $ hg log -G -T '{rev} {desc} {files}\n'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
19 o 10 r10 nf10
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
20 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
21 o 9 r9 nf9
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
22 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
23 o 8 r8 nf8
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
24 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
25 o 7 r7 nf7
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
26 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
27 o 6 r6 nf6
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
28 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
29 o 5 r5 nf5
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
30 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
31 o 4 r4 nf4
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
32 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
33 o 3 r3 nf3
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
34 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
35 o 2 r2 nf2
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
36 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
37 o 1 r1 nf1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
38 |
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
39 o 0 r0 nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
40
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
41 $ hg up tip
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
42 11 files updated, 0 files merged, 0 files removed, 0 files unresolved
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
43 $ hg files
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
44 nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
45 nf1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
46 nf10
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
47 nf2
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
48 nf3
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
49 nf4
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
50 nf5
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
51 nf6
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
52 nf7
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
53 nf8
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
54 nf9
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
55
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
56 key-file exists
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
57 -----------
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
58
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
59 The tracked hint file should exist
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
60
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
61 $ ls -1 .hg/dirstate*
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
62 .hg/dirstate
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
63 .hg/dirstate-tracked-hint
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
64
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
65 key-file stay the same if the tracked set is unchanged
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
66 ------------------------------------------------------
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
67
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
68 (copy its content for later comparison)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
69
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
70 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
71 $ echo foo >> nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
72 $ sleep 1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
73 $ hg status
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
74 M nf0
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
75 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
76 $ hg revert -C nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
77 $ sleep 1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
78 $ hg status
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
79 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
80
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
81 key-file change if the tracked set is changed manually
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
82 ------------------------------------------------------
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
83
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
84 adding a file to tracking
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
85
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
86 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
87 $ echo x > x
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
88 $ hg add x
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
89 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
90 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
91 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
92
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
93 remove a file from tracking
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
94 (forget)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
95
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
96 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
97 $ hg forget x
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
98 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
99 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
100 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
101
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
102 (remove)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
103
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
104 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
105 $ hg remove nf1
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
106 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
107 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
108 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
109
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
110 key-file changes on revert (when applicable)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
111 --------------------------------------------
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
112
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
113 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
114 $ hg status
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
115 R nf1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
116 ? x
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
117 $ hg revert --all
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
118 undeleting nf1
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
119 $ hg status
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
120 ? x
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
121 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
122 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
123 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
124
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
125
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
126 `hg update` does affect the key-file (when needed)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
127 --------------------------------------------------
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
128
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
129 update changing the tracked set
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
130
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
131 (removing)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
132
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
133 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
134 $ hg status --rev . --rev '.#generations[-1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
135 R nf10
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
136 $ hg up '.#generations[-1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
137 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
138 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
139 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
140 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
141
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
142 (adding)
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
143
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
144 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
145 $ hg status --rev . --rev '.#generations[1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
146 A nf10
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
147 $ hg up '.#generations[1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
148 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
149 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
150 Files .hg/dirstate-tracked-hint and ../key-bck differ
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
151 [1]
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
152
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
153 update not affecting the tracked set
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
154
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
155 $ echo foo >> nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
156 $ hg commit -m foo
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
157
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
158 $ cp .hg/dirstate-tracked-hint ../key-bck
48684
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
159 $ hg status --rev . --rev '.#generations[-1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
160 M nf0
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
161 $ hg up '.#generations[-1]'
568f63b5a30f dirstate: introduce a "tracked-key" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
163 $ diff --brief .hg/dirstate-tracked-hint ../key-bck
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
164
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
165 Test upgrade and downgrade
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
166 ==========================
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
167
49773
13c0e3b4fd35 tests: use `test -f` instead of `ls` to see if a file is present (issue6662)
Anton Shestakov <av6@dwimlabs.net>
parents: 49500
diff changeset
168 $ test -f .hg/dirstate-tracked-hint
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
169 $ hg debugrequires | grep 'tracked'
48791
1af95465961a tracked-key: update the requirement value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
170 dirstate-tracked-key-v1
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
171
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
172 downgrade
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
173
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
174 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=no --run --quiet
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
175 upgrade will perform the following actions:
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
176
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
177 requirements
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
178 preserved: * (glob)
48791
1af95465961a tracked-key: update the requirement value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
179 removed: dirstate-tracked-key-v1
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
180
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
181 no revlogs to process
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
182
49773
13c0e3b4fd35 tests: use `test -f` instead of `ls` to see if a file is present (issue6662)
Anton Shestakov <av6@dwimlabs.net>
parents: 49500
diff changeset
183 $ test -f .hg/dirstate-tracked-hint
13c0e3b4fd35 tests: use `test -f` instead of `ls` to see if a file is present (issue6662)
Anton Shestakov <av6@dwimlabs.net>
parents: 49500
diff changeset
184 [1]
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
185 $ hg debugrequires | grep 'tracked'
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
186 [1]
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
187
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
188 upgrade
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
189
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48792
diff changeset
190 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=yes --run --quiet
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
191 upgrade will perform the following actions:
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
192
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
193 requirements
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
194 preserved: * (glob)
48791
1af95465961a tracked-key: update the requirement value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
195 added: dirstate-tracked-key-v1
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
196
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
197 no revlogs to process
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
198
49773
13c0e3b4fd35 tests: use `test -f` instead of `ls` to see if a file is present (issue6662)
Anton Shestakov <av6@dwimlabs.net>
parents: 49500
diff changeset
199 $ test -f .hg/dirstate-tracked-hint
48790
5ba24e886cec tracked-key: make it possible to upgrade to and downgrade from the feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48771
diff changeset
200 $ hg debugrequires | grep 'tracked'
48791
1af95465961a tracked-key: update the requirement value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
201 dirstate-tracked-key-v1
49194
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
202 $ cd ..
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
203
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
204 Test automatic upgrade and downgrade
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
205 ------------------------------------
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
206
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
207 create an initial repository
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
208
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
209 $ hg init auto-upgrade \
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
210 > --config format.use-dirstate-tracked-hint=no
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
211 $ hg debugbuilddag -R auto-upgrade --new-file .+5
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
212 $ hg -R auto-upgrade update
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
213 6 files updated, 0 files merged, 0 files removed, 0 files unresolved
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
214 $ hg debugformat -R auto-upgrade | grep tracked
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
215 tracked-hint: no
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
216
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
217 upgrade it to dirstate-tracked-hint automatically
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
218
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
219 $ hg status -R auto-upgrade \
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
220 > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
221 > --config format.use-dirstate-tracked-hint=yes
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
222 automatically upgrading repository to the `tracked-hint` feature
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
223 (see `hg help config.format.use-dirstate-tracked-hint` for details)
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
224 $ hg debugformat -R auto-upgrade | grep tracked
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
225 tracked-hint: yes
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
226
49500
3a53871048dc rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49194
diff changeset
227 rhg supports this feature
3a53871048dc rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49194
diff changeset
228
3a53871048dc rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49194
diff changeset
229 $ hg status -R auto-upgrade \
3a53871048dc rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49194
diff changeset
230 > --config format.use-dirstate-tracked-hint=yes --config rhg.on-unsupported=abort
3a53871048dc rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49194
diff changeset
231
49194
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
232 downgrade it from dirstate-tracked-hint automatically
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
233
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
234 $ hg status -R auto-upgrade \
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
235 > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
236 > --config format.use-dirstate-tracked-hint=no
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
237 automatically downgrading repository from the `tracked-hint` feature
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
238 (see `hg help config.format.use-dirstate-tracked-hint` for details)
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
239 $ hg debugformat -R auto-upgrade | grep tracked
e4b31016e194 auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48801
diff changeset
240 tracked-hint: no