54 nf9 |
54 nf9 |
55 |
55 |
56 key-file exists |
56 key-file exists |
57 ----------- |
57 ----------- |
58 |
58 |
59 The tracked key file should exist |
59 The tracked hint file should exist |
60 |
60 |
61 $ ls -1 .hg/dirstate* |
61 $ ls -1 .hg/dirstate* |
62 .hg/dirstate |
62 .hg/dirstate |
63 .hg/dirstate-tracked-key |
63 .hg/dirstate-tracked-hint |
64 |
64 |
65 key-file stay the same if the tracked set is unchanged |
65 key-file stay the same if the tracked set is unchanged |
66 ------------------------------------------------------ |
66 ------------------------------------------------------ |
67 |
67 |
68 (copy its content for later comparison) |
68 (copy its content for later comparison) |
69 |
69 |
70 $ cp .hg/dirstate-tracked-key ../key-bck |
70 $ cp .hg/dirstate-tracked-hint ../key-bck |
71 $ echo foo >> nf0 |
71 $ echo foo >> nf0 |
72 $ sleep 1 |
72 $ sleep 1 |
73 $ hg status |
73 $ hg status |
74 M nf0 |
74 M nf0 |
75 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
75 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
76 $ hg revert -C nf0 |
76 $ hg revert -C nf0 |
77 $ sleep 1 |
77 $ sleep 1 |
78 $ hg status |
78 $ hg status |
79 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
79 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
80 |
80 |
81 key-file change if the tracked set is changed manually |
81 key-file change if the tracked set is changed manually |
82 ------------------------------------------------------ |
82 ------------------------------------------------------ |
83 |
83 |
84 adding a file to tracking |
84 adding a file to tracking |
85 |
85 |
86 $ cp .hg/dirstate-tracked-key ../key-bck |
86 $ cp .hg/dirstate-tracked-hint ../key-bck |
87 $ echo x > x |
87 $ echo x > x |
88 $ hg add x |
88 $ hg add x |
89 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
89 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
90 Files .hg/dirstate-tracked-key and ../key-bck differ |
90 Files .hg/dirstate-tracked-hint and ../key-bck differ |
91 [1] |
91 [1] |
92 |
92 |
93 remove a file from tracking |
93 remove a file from tracking |
94 (forget) |
94 (forget) |
95 |
95 |
96 $ cp .hg/dirstate-tracked-key ../key-bck |
96 $ cp .hg/dirstate-tracked-hint ../key-bck |
97 $ hg forget x |
97 $ hg forget x |
98 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
98 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
99 Files .hg/dirstate-tracked-key and ../key-bck differ |
99 Files .hg/dirstate-tracked-hint and ../key-bck differ |
100 [1] |
100 [1] |
101 |
101 |
102 (remove) |
102 (remove) |
103 |
103 |
104 $ cp .hg/dirstate-tracked-key ../key-bck |
104 $ cp .hg/dirstate-tracked-hint ../key-bck |
105 $ hg remove nf1 |
105 $ hg remove nf1 |
106 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
106 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
107 Files .hg/dirstate-tracked-key and ../key-bck differ |
107 Files .hg/dirstate-tracked-hint and ../key-bck differ |
108 [1] |
108 [1] |
109 |
109 |
110 key-file changes on revert (when applicable) |
110 key-file changes on revert (when applicable) |
111 -------------------------------------------- |
111 -------------------------------------------- |
112 |
112 |
113 $ cp .hg/dirstate-tracked-key ../key-bck |
113 $ cp .hg/dirstate-tracked-hint ../key-bck |
114 $ hg status |
114 $ hg status |
115 R nf1 |
115 R nf1 |
116 ? x |
116 ? x |
117 $ hg revert --all |
117 $ hg revert --all |
118 undeleting nf1 |
118 undeleting nf1 |
119 $ hg status |
119 $ hg status |
120 ? x |
120 ? x |
121 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
121 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
122 Files .hg/dirstate-tracked-key and ../key-bck differ |
122 Files .hg/dirstate-tracked-hint and ../key-bck differ |
123 [1] |
123 [1] |
124 |
124 |
125 |
125 |
126 `hg update` does affect the key-file (when needed) |
126 `hg update` does affect the key-file (when needed) |
127 -------------------------------------------------- |
127 -------------------------------------------------- |
128 |
128 |
129 update changing the tracked set |
129 update changing the tracked set |
130 |
130 |
131 (removing) |
131 (removing) |
132 |
132 |
133 $ cp .hg/dirstate-tracked-key ../key-bck |
133 $ cp .hg/dirstate-tracked-hint ../key-bck |
134 $ hg status --rev . --rev '.#generations[-1]' |
134 $ hg status --rev . --rev '.#generations[-1]' |
135 R nf10 |
135 R nf10 |
136 $ hg up '.#generations[-1]' |
136 $ hg up '.#generations[-1]' |
137 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
137 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
138 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
138 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
139 Files .hg/dirstate-tracked-key and ../key-bck differ |
139 Files .hg/dirstate-tracked-hint and ../key-bck differ |
140 [1] |
140 [1] |
141 |
141 |
142 (adding) |
142 (adding) |
143 |
143 |
144 $ cp .hg/dirstate-tracked-key ../key-bck |
144 $ cp .hg/dirstate-tracked-hint ../key-bck |
145 $ hg status --rev . --rev '.#generations[1]' |
145 $ hg status --rev . --rev '.#generations[1]' |
146 A nf10 |
146 A nf10 |
147 $ hg up '.#generations[1]' |
147 $ hg up '.#generations[1]' |
148 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
148 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
149 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
149 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
150 Files .hg/dirstate-tracked-key and ../key-bck differ |
150 Files .hg/dirstate-tracked-hint and ../key-bck differ |
151 [1] |
151 [1] |
152 |
152 |
153 update not affecting the tracked set |
153 update not affecting the tracked set |
154 |
154 |
155 $ echo foo >> nf0 |
155 $ echo foo >> nf0 |
156 $ hg commit -m foo |
156 $ hg commit -m foo |
157 |
157 |
158 $ cp .hg/dirstate-tracked-key ../key-bck |
158 $ cp .hg/dirstate-tracked-hint ../key-bck |
159 $ hg status --rev . --rev '.#generations[-1]' |
159 $ hg status --rev . --rev '.#generations[-1]' |
160 M nf0 |
160 M nf0 |
161 $ hg up '.#generations[-1]' |
161 $ hg up '.#generations[-1]' |
162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
163 $ diff --brief .hg/dirstate-tracked-key ../key-bck |
163 $ diff --brief .hg/dirstate-tracked-hint ../key-bck |
164 |
164 |
165 Test upgrade and downgrade |
165 Test upgrade and downgrade |
166 ========================== |
166 ========================== |
167 |
167 |
168 $ ls .hg/dirstate-tracked-key |
168 $ ls .hg/dirstate-tracked-hint |
169 .hg/dirstate-tracked-key |
169 .hg/dirstate-tracked-hint |
170 $ hg debugrequires | grep 'tracked' |
170 $ hg debugrequires | grep 'tracked' |
171 dirstate-tracked-key-v1 |
171 dirstate-tracked-key-v1 |
172 |
172 |
173 downgrade |
173 downgrade |
174 |
174 |
175 $ hg debugupgraderepo --config format.use-dirstate-tracked-key=no --run --quiet |
175 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=no --run --quiet |
176 upgrade will perform the following actions: |
176 upgrade will perform the following actions: |
177 |
177 |
178 requirements |
178 requirements |
179 preserved: * (glob) |
179 preserved: * (glob) |
180 removed: dirstate-tracked-key-v1 |
180 removed: dirstate-tracked-key-v1 |
181 |
181 |
182 no revlogs to process |
182 no revlogs to process |
183 |
183 |
184 $ ls -1 .hg/dirstate-tracked-key |
184 $ ls -1 .hg/dirstate-tracked-hint |
185 ls: cannot access '.hg/dirstate-tracked-key': $ENOENT$ |
185 ls: cannot access '.hg/dirstate-tracked-hint': $ENOENT$ |
186 [2] |
186 [2] |
187 $ hg debugrequires | grep 'tracked' |
187 $ hg debugrequires | grep 'tracked' |
188 [1] |
188 [1] |
189 |
189 |
190 upgrade |
190 upgrade |
191 |
191 |
192 $ hg debugupgraderepo --config format.use-dirstate-tracked-key=yes --run --quiet |
192 $ hg debugupgraderepo --config format.use-dirstate-tracked-hint=yes --run --quiet |
193 upgrade will perform the following actions: |
193 upgrade will perform the following actions: |
194 |
194 |
195 requirements |
195 requirements |
196 preserved: * (glob) |
196 preserved: * (glob) |
197 added: dirstate-tracked-key-v1 |
197 added: dirstate-tracked-key-v1 |
198 |
198 |
199 no revlogs to process |
199 no revlogs to process |
200 |
200 |
201 $ ls -1 .hg/dirstate-tracked-key |
201 $ ls -1 .hg/dirstate-tracked-hint |
202 .hg/dirstate-tracked-key |
202 .hg/dirstate-tracked-hint |
203 $ hg debugrequires | grep 'tracked' |
203 $ hg debugrequires | grep 'tracked' |
204 dirstate-tracked-key-v1 |
204 dirstate-tracked-key-v1 |