Mercurial > hg
annotate tests/test-manifest.t @ 42377:0546ead39a7e stable
manifest: avoid corruption by dropping removed files with pure (issue5801)
Previously, removed files would simply be marked by overwriting the first byte
with NUL and dropping their entry in `self.position`. But no effort was made to
ignore them when compacting the dictionary into text form. This allowed them to
slip into the manifest revision, since the code seems to be trying to minimize
the string operations by copying as large a chunk as possible. As part of this,
compact() walks the existing text based on entries in the `positions` list, and
consumed everything up to the next position entry. This typically resulted in
a ValueError complaining about unsorted manifest entries.
Sometimes it seems that files do get dropped in large repos- it seems to
correspond to there being a new entry that would take the same slot. A much
more trivial problem is that if the only changes were removals, `_compact()`
didn't even run because `__delitem__` doesn't add anything to `self.extradata`.
Now there's an explicit variable to flag this, both to allow `_compact()` to
run, and to avoid searching the manifest in cases where there are no removals.
In practice, this behavior was mostly obscured by the check in fastdelta() which
takes a different path that explicitly drops removed files if there are fewer
than 1000 changes. However, timeless has a repo where after rebasing tens of
commits, a totally different path[1] is taken that bypasses the change count
check and hits this problem.
[1] https://www.mercurial-scm.org/repo/hg/file/2338bdea4474/mercurial/manifest.py#l1511
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 23 May 2019 21:54:24 -0400 |
parents | 89c0c8edc9d4 |
children | 8377570a36a9 |
rev | line source |
---|---|
12328
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12316
diff
changeset
|
1 Source bundle was generated with the following script: |
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12316
diff
changeset
|
2 |
5406
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
3 # hg init |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
4 # echo a > a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
5 # ln -s a l |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
6 # hg ci -Ama -d'0 0' |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
7 # mkdir b |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
8 # echo a > b/a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
9 # chmod +x b/a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
10 # hg ci -Amb -d'1 0' |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
11 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
12 $ hg init |
37437
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
13 $ hg unbundle "$TESTDIR/bundles/test-manifest.hg" |
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
14 adding changesets |
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
15 adding manifests |
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
16 adding file changes |
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
17 added 2 changesets with 3 changes to 3 files |
39480
89630d0b3e23
phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents:
38543
diff
changeset
|
18 new changesets b73562a03cfe:5bdc995175ba (2 drafts) |
37437
814e080a1215
commands: document the layering violation in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37346
diff
changeset
|
19 (run 'hg update' to get a working copy) |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
20 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
21 The next call is expected to return nothing: |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
22 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
23 $ hg manifest |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
24 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
25 $ hg co |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
26 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
5406
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
27 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
28 $ hg manifest |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
29 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
30 b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
31 l |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
32 |
22423
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
33 $ hg files -vr . |
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
34 2 a |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
23348
diff
changeset
|
35 2 x b/a |
22423
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
36 1 l l |
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
37 $ hg files -r . -X b |
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
38 a |
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
39 l |
38541
475f5f86eaed
files: automatically populate fields referenced from template
Yuya Nishihara <yuya@tcha.org>
parents:
37438
diff
changeset
|
40 $ hg files -T '{path} {size} {flags}\n' |
475f5f86eaed
files: automatically populate fields referenced from template
Yuya Nishihara <yuya@tcha.org>
parents:
37438
diff
changeset
|
41 a 2 |
475f5f86eaed
files: automatically populate fields referenced from template
Yuya Nishihara <yuya@tcha.org>
parents:
37438
diff
changeset
|
42 b/a 2 x |
475f5f86eaed
files: automatically populate fields referenced from template
Yuya Nishihara <yuya@tcha.org>
parents:
37438
diff
changeset
|
43 l 1 l |
38542
7ae0ea739770
files: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38541
diff
changeset
|
44 $ hg files -T '{path} {node|shortest}\n' -r. |
7ae0ea739770
files: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38541
diff
changeset
|
45 a 5bdc |
7ae0ea739770
files: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38541
diff
changeset
|
46 b/a 5bdc |
7ae0ea739770
files: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38541
diff
changeset
|
47 l 5bdc |
22423
edf07a804ac4
files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com>
parents:
16907
diff
changeset
|
48 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
49 $ hg manifest -v |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
50 644 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
51 755 * b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
52 644 @ l |
38543
ece3f2d0bbd9
manifest: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38542
diff
changeset
|
53 $ hg manifest -T '{path} {rev}\n' |
ece3f2d0bbd9
manifest: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38542
diff
changeset
|
54 a 1 |
ece3f2d0bbd9
manifest: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38542
diff
changeset
|
55 b/a 1 |
ece3f2d0bbd9
manifest: add support for log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org>
parents:
38542
diff
changeset
|
56 l 1 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
57 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
58 $ hg manifest --debug |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
59 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
60 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 755 * b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
61 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 644 @ l |
6737
7239e06e58e9
context: consistently return p1 context for None
Matt Mackall <mpm@selenic.com>
parents:
5406
diff
changeset
|
62 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
63 $ hg manifest -r 0 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
64 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
65 l |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
66 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
67 $ hg manifest -r 1 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
68 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
69 b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
70 l |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
71 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
72 $ hg manifest -r tip |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
73 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
74 b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
75 l |
5155
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
76 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
77 $ hg manifest tip |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
78 a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
79 b/a |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
80 l |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
81 |
14399
71938479eff9
add new option --all to manifest command
Adrian Buehlmann <adrian@cadifra.com>
parents:
14116
diff
changeset
|
82 $ hg manifest --all |
37438
7b7ca9ba2de5
commands: don't violate storage abstractions in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37437
diff
changeset
|
83 a |
7b7ca9ba2de5
commands: don't violate storage abstractions in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37437
diff
changeset
|
84 b/a |
7b7ca9ba2de5
commands: don't violate storage abstractions in `manifest --all`
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37437
diff
changeset
|
85 l |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
86 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
87 The next two calls are expected to abort: |
5155
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
88 |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
89 $ hg manifest -r 2 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
90 abort: unknown revision '2'! |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12253
diff
changeset
|
91 [255] |
12253
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
92 |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
93 $ hg manifest -r tip tip |
e5aee120287b
tests: unify test-manifest*
Adrian Buehlmann <adrian@cadifra.com>
parents:
6737
diff
changeset
|
94 abort: please specify just one revision |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12253
diff
changeset
|
95 [255] |
41940
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
96 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
97 Testing the manifest full text cache utility |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
98 -------------------------------------------- |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
99 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
100 Reminder of the manifest log content |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
101 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
102 $ hg log --debug | grep 'manifest:' |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
103 manifest: 1:1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
104 manifest: 0:fce2a30dedad1eef4da95ca1dc0004157aa527cf |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
105 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
106 Showing the content of the caches after the above operations |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
107 |
70d2d47314e5
manifestcache: test and fix some output of the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39480
diff
changeset
|
108 $ hg debugmanifestfulltextcache |
41964
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
109 cache contains 1 manifest entries, in order of most to least recent: |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
110 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
111 total cache data size 157 bytes, on-disk 157 bytes |
41942
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
112 |
41963
6386f9a421d2
manifestcache: clear the cache before testing the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41960
diff
changeset
|
113 (Clearing the cache in case of any content) |
6386f9a421d2
manifestcache: clear the cache before testing the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41960
diff
changeset
|
114 |
6386f9a421d2
manifestcache: clear the cache before testing the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41960
diff
changeset
|
115 $ hg debugmanifestfulltextcache --clear |
6386f9a421d2
manifestcache: clear the cache before testing the debug command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41960
diff
changeset
|
116 |
41942
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
117 Adding a new persistent entry in the cache |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
118 |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
119 $ hg debugmanifestfulltextcache --add 1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
120 |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
121 $ hg debugmanifestfulltextcache |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
122 cache contains 1 manifest entries, in order of most to least recent: |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
123 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41940
diff
changeset
|
124 total cache data size 157 bytes, on-disk 157 bytes |
41944
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
125 |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
126 Check we don't duplicated entry (added from the debug command) |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
127 |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
128 $ hg debugmanifestfulltextcache --add 1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
129 $ hg debugmanifestfulltextcache |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
130 cache contains 1 manifest entries, in order of most to least recent: |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
131 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
99eb9f269a5a
manifestcache: test that adding the same entry twice do not duplicates it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41943
diff
changeset
|
132 total cache data size 157 bytes, on-disk 157 bytes |
41945
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
133 |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
134 Adding a second entry |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
135 |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
136 $ hg debugmanifestfulltextcache --add fce2a30dedad1eef4da95ca1dc0004157aa527cf |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
137 $ hg debugmanifestfulltextcache |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
138 cache contains 2 manifest entries, in order of most to least recent: |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
139 id: fce2a30dedad1eef4da95ca1dc0004157aa527cf, size 87 bytes |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
140 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
7436653d8542
manifestcache: adding a second distinct entry
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41944
diff
changeset
|
141 total cache data size 268 bytes, on-disk 268 bytes |
41946
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
142 |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
143 Accessing the initial entry again, refresh their order |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
144 |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
145 $ hg debugmanifestfulltextcache --add 1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
146 $ hg debugmanifestfulltextcache |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
147 cache contains 2 manifest entries, in order of most to least recent: |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
148 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
149 id: fce2a30dedad1eef4da95ca1dc0004157aa527cf, size 87 bytes |
5b77847bdf09
manifestcache: make sure the entry are ordered by access time
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41945
diff
changeset
|
150 total cache data size 268 bytes, on-disk 268 bytes |
41947
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
151 |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
152 Check cache clearing |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
153 |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
154 $ hg debugmanifestfulltextcache --clear |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
155 $ hg debugmanifestfulltextcache |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
156 cache empty |
41958
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
157 |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
158 Check adding multiple entry in one go: |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
159 |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
160 $ hg debugmanifestfulltextcache --add fce2a30dedad1eef4da95ca1dc0004157aa527cf --add 1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
161 $ hg debugmanifestfulltextcache |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
162 cache contains 2 manifest entries, in order of most to least recent: |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
163 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
164 id: fce2a30dedad1eef4da95ca1dc0004157aa527cf, size 87 bytes |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
165 total cache data size 268 bytes, on-disk 268 bytes |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
166 $ hg debugmanifestfulltextcache --clear |
41960
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
167 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
168 Test caching behavior on actual operation |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
169 ----------------------------------------- |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
170 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
171 Make sure we start empty |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
172 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
173 $ hg debugmanifestfulltextcache |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
174 cache empty |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
175 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
176 Commit should have the new node cached: |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
177 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
178 $ echo a >> b/a |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
179 $ hg commit -m 'foo' |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
180 $ hg debugmanifestfulltextcache |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
181 cache contains 2 manifest entries, in order of most to least recent: |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
182 id: 26b8653b67af8c1a0a0317c4ee8dac50a41fdb65, size 133 bytes |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
183 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
184 total cache data size 314 bytes, on-disk 314 bytes |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
185 $ hg log -r 'ancestors(., 1)' --debug | grep 'manifest:' |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
186 manifest: 1:1e01206b1d2f72bd55f2a33fa8ccad74144825b7 |
7d417ab1eda9
manifestcache: test the cache is warm after a commit
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41958
diff
changeset
|
187 manifest: 2:26b8653b67af8c1a0a0317c4ee8dac50a41fdb65 |
41964
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
188 |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
189 hg update should warm the cache too |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
190 |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
191 (force dirstate check to avoid flackiness in manifest order) |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
192 $ hg debugrebuilddirstate |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
193 |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
194 $ hg update 0 |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
195 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
196 $ hg debugmanifestfulltextcache |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
197 cache contains 3 manifest entries, in order of most to least recent: |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
198 id: fce2a30dedad1eef4da95ca1dc0004157aa527cf, size 87 bytes |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
199 id: 26b8653b67af8c1a0a0317c4ee8dac50a41fdb65, size 133 bytes |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
200 id: 1e01206b1d2f72bd55f2a33fa8ccad74144825b7, size 133 bytes |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
201 total cache data size 425 bytes, on-disk 425 bytes |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
202 $ hg log -r '0' --debug | grep 'manifest:' |
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
203 manifest: 0:fce2a30dedad1eef4da95ca1dc0004157aa527cf |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
204 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
205 Test file removal (especially with pure). The tests are crafted such that there |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
206 will be contiguous spans of existing entries to ensure that is handled properly. |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
207 (In this case, a.txt, aa.txt and c.txt, cc.txt, and ccc.txt) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
208 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
209 $ cat > $TESTTMP/manifest.py <<EOF |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
210 > from mercurial import ( |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
211 > extensions, |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
212 > manifest, |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
213 > ) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
214 > def extsetup(ui): |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
215 > manifest.FASTDELTA_TEXTDIFF_THRESHOLD = 0 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
216 > EOF |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
217 $ cat >> $HGRCPATH <<EOF |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
218 > [extensions] |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
219 > manifest = $TESTTMP/manifest.py |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
220 > EOF |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
221 |
42377
0546ead39a7e
manifest: avoid corruption by dropping removed files with pure (issue5801)
Matt Harbison <matt_harbison@yahoo.com>
parents:
42376
diff
changeset
|
222 Pure removes should actually remove all dropped entries |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
223 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
224 $ hg init repo |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
225 $ cd repo |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
226 $ echo a > a.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
227 $ echo aa > aa.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
228 $ echo b > b.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
229 $ echo c > c.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
230 $ echo c > cc.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
231 $ echo c > ccc.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
232 $ echo b > d.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
233 $ echo c > e.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
234 $ hg ci -Aqm 'a-e' |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
235 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
236 $ hg rm b.txt d.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
237 $ hg ci -m 'remove b and d' |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
238 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
239 $ hg debugdata -m 1 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
240 a.txt\x00b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
241 aa.txt\x00a4bdc161c8fbb523c9a60409603f8710ff49a571 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
242 c.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
243 cc.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
244 ccc.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
245 e.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
246 |
42377
0546ead39a7e
manifest: avoid corruption by dropping removed files with pure (issue5801)
Matt Harbison <matt_harbison@yahoo.com>
parents:
42376
diff
changeset
|
247 $ hg up -qC . |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
248 |
42377
0546ead39a7e
manifest: avoid corruption by dropping removed files with pure (issue5801)
Matt Harbison <matt_harbison@yahoo.com>
parents:
42376
diff
changeset
|
249 $ hg verify |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
250 checking changesets |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
251 checking manifests |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
252 crosschecking files in changesets and manifests |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
253 checking files |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
254 checked 2 changesets with 8 changes to 8 files |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
255 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
256 $ hg rollback -q --config ui.rollback=True |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
257 $ hg rm b.txt d.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
258 $ echo bb > bb.txt |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
259 |
42377
0546ead39a7e
manifest: avoid corruption by dropping removed files with pure (issue5801)
Matt Harbison <matt_harbison@yahoo.com>
parents:
42376
diff
changeset
|
260 A mix of adds and removes should remove all dropped entries. |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
261 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
262 $ hg ci -Aqm 'remove b and d; add bb' |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
263 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
264 $ hg debugdata -m 1 |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
265 a.txt\x00b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
266 aa.txt\x00a4bdc161c8fbb523c9a60409603f8710ff49a571 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
267 bb.txt\x0004c6faf8a9fdd848a5304dfc1704749a374dff44 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
268 c.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
269 cc.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
270 ccc.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
271 e.txt\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc) |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
272 |
42377
0546ead39a7e
manifest: avoid corruption by dropping removed files with pure (issue5801)
Matt Harbison <matt_harbison@yahoo.com>
parents:
42376
diff
changeset
|
273 $ hg verify |
42376
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
274 checking changesets |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
275 checking manifests |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
276 crosschecking files in changesets and manifests |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
277 checking files |
89c0c8edc9d4
tests: demonstrate broken manifest generation with the pure module
Matt Harbison <matt_harbison@yahoo.com>
parents:
41964
diff
changeset
|
278 checked 2 changesets with 9 changes to 9 files |