Mercurial > hg-stable
comparison tests/test-merge-no-file-change.t @ 39148:46da52f4b820
commit: try hard to reuse p1 manifest if nothing changed
This is all for commit reproducibility on "hg convert".
With this change, p1 manifest is reused if ctx.files() *to be committed* is
empty, and if new manifest entry is identical to p1. This is important
property for "hg convert" since memctx.files() built from a convert source
may be either a) more narrowed thanks to a committed ctx.files() which
provides more accurate status, or b) containing redundant files because of
sloppy filtering on e.g. octopus merge.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 07 Jul 2018 22:40:39 +0900 |
parents | f0c2653ca706 |
children | 8988e640a8ac |
comparison
equal
deleted
inserted
replaced
39147:f0c2653ca706 | 39148:46da52f4b820 |
---|---|
28 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 28 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
29 (branch merge, don't forget to commit) | 29 (branch merge, don't forget to commit) |
30 $ hg ci --debug -m merge | 30 $ hg ci --debug -m merge |
31 committing files: | 31 committing files: |
32 b | 32 b |
33 not reusing manifest (no file change in changelog, but manifest differs) | |
33 committing manifest | 34 committing manifest |
34 committing changelog | 35 committing changelog |
35 updating the branch cache | 36 updating the branch cache |
36 committed changeset 3:7aa8a293f5d97377037afc21e871e036e718d659 | 37 committed changeset 3:7aa8a293f5d97377037afc21e871e036e718d659 |
37 $ hg log -GTl | 38 $ hg log -GTl |
134 (branch merge, don't forget to commit) | 135 (branch merge, don't forget to commit) |
135 $ chmod +x b | 136 $ chmod +x b |
136 $ hg ci --debug -m merge | 137 $ hg ci --debug -m merge |
137 committing files: | 138 committing files: |
138 b | 139 b |
139 committing manifest | 140 reusing manifest form p1 (listed files actually unchanged) |
140 committing changelog | 141 committing changelog |
141 updating the branch cache | 142 updating the branch cache |
142 committed changeset 3:4bfaad7f925b7f17f60524dc5d4e605f7bfbba3f | 143 committed changeset 3:c8d50407916ef8a5a97cb6e36ca9bc844a6ee13e |
143 $ hg log -GTl | 144 $ hg log -GTl |
144 @ 3:4bfaad7f925b p=2,1 m=3:a3a9fe23a5b8 f=[] | 145 @ 3:c8d50407916e p=2,1 m=2:36b69ba4b24b f=[] |
145 |\ | 146 |\ |
146 | o 2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"] | 147 | o 2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"] |
147 | | | 148 | | |
148 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] | 149 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] |
149 |/ | 150 |/ |
153 0 a | 154 0 a |
154 0 x b | 155 0 x b |
155 | 156 |
156 $ cd .. | 157 $ cd .. |
157 $ check_convert_identity flag-change-take-p1 | 158 $ check_convert_identity flag-change-take-p1 |
158 3:c8d50407916e | |
159 *** BUG: hash changes on convert *** | |
160 o 3:c8d50407916e p=2,1 m=2:36b69ba4b24b f=[] | |
161 |\ | |
162 | o 2:99451f16b3f5 p=0,-1 m=2:36b69ba4b24b f=["b"] | |
163 | | | |
164 o | 1:64d01526d4c2 p=0,-1 m=1:686dbf0aeca4 f=["b"] | |
165 |/ | |
166 o 0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] | |
167 | |
168 | 159 |
169 An identical file added at both parents, but the flag differs. Take other: | 160 An identical file added at both parents, but the flag differs. Take other: |
170 | 161 |
171 $ hg init flag-change-take-p2 | 162 $ hg init flag-change-take-p2 |
172 $ cd flag-change-take-p2 | 163 $ cd flag-change-take-p2 |
224 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 215 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
225 (branch merge, don't forget to commit) | 216 (branch merge, don't forget to commit) |
226 $ hg ci --debug -m merge | 217 $ hg ci --debug -m merge |
227 committing files: | 218 committing files: |
228 c | 219 c |
220 not reusing manifest (no file change in changelog, but manifest differs) | |
229 committing manifest | 221 committing manifest |
230 committing changelog | 222 committing changelog |
231 updating the branch cache | 223 updating the branch cache |
232 committed changeset 4:f7fbc4e4d9a8fde03ba475adad675578c8bf472d | 224 committed changeset 4:f7fbc4e4d9a8fde03ba475adad675578c8bf472d |
233 $ hg log -GTl | 225 $ hg log -GTl |
297 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 289 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
298 (branch merge, don't forget to commit) | 290 (branch merge, don't forget to commit) |
299 $ hg ci --debug -m merge | 291 $ hg ci --debug -m merge |
300 committing files: | 292 committing files: |
301 b | 293 b |
294 not reusing manifest (no file change in changelog, but manifest differs) | |
302 committing manifest | 295 committing manifest |
303 committing changelog | 296 committing changelog |
304 updating the branch cache | 297 updating the branch cache |
305 committed changeset 3:fb97d83b02fd072295cfc2171f21b7d38509bfd7 | 298 committed changeset 3:fb97d83b02fd072295cfc2171f21b7d38509bfd7 |
306 $ hg log -GT'{l} branch={branch}' | 299 $ hg log -GT'{l} branch={branch}' |