Show More
@@ -1,139 +1,139 b'' | |||||
1 | #require unix-permissions no-root |
|
1 | #require unix-permissions no-root reporevlogstore | |
2 |
|
2 | |||
3 | $ cat > $TESTTMP/dumpjournal.py <<EOF |
|
3 | $ cat > $TESTTMP/dumpjournal.py <<EOF | |
4 | > import sys |
|
4 | > import sys | |
5 | > for entry in sys.stdin.read().split('\n'): |
|
5 | > for entry in sys.stdin.read().split('\n'): | |
6 | > if entry: |
|
6 | > if entry: | |
7 | > print(entry.split('\x00')[0]) |
|
7 | > print(entry.split('\x00')[0]) | |
8 | > EOF |
|
8 | > EOF | |
9 |
|
9 | |||
10 | $ echo "[extensions]" >> $HGRCPATH |
|
10 | $ echo "[extensions]" >> $HGRCPATH | |
11 | $ echo "mq=">> $HGRCPATH |
|
11 | $ echo "mq=">> $HGRCPATH | |
12 |
|
12 | |||
13 | $ teststrip() { |
|
13 | $ teststrip() { | |
14 | > hg -q up -C $1 |
|
14 | > hg -q up -C $1 | |
15 | > echo % before update $1, strip $2 |
|
15 | > echo % before update $1, strip $2 | |
16 | > hg parents |
|
16 | > hg parents | |
17 | > chmod -$3 $4 |
|
17 | > chmod -$3 $4 | |
18 | > hg strip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' |
|
18 | > hg strip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' | |
19 | > echo % after update $1, strip $2 |
|
19 | > echo % after update $1, strip $2 | |
20 | > chmod +$3 $4 |
|
20 | > chmod +$3 $4 | |
21 | > hg verify |
|
21 | > hg verify | |
22 | > echo % journal contents |
|
22 | > echo % journal contents | |
23 | > if [ -f .hg/store/journal ]; then |
|
23 | > if [ -f .hg/store/journal ]; then | |
24 | > cat .hg/store/journal | $PYTHON $TESTTMP/dumpjournal.py |
|
24 | > cat .hg/store/journal | $PYTHON $TESTTMP/dumpjournal.py | |
25 | > else |
|
25 | > else | |
26 | > echo "(no journal)" |
|
26 | > echo "(no journal)" | |
27 | > fi |
|
27 | > fi | |
28 | > ls .hg/store/journal >/dev/null 2>&1 && hg recover |
|
28 | > ls .hg/store/journal >/dev/null 2>&1 && hg recover | |
29 | > ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/* |
|
29 | > ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/* | |
30 | > rm -rf .hg/strip-backup |
|
30 | > rm -rf .hg/strip-backup | |
31 | > } |
|
31 | > } | |
32 |
|
32 | |||
33 | $ hg init test |
|
33 | $ hg init test | |
34 | $ cd test |
|
34 | $ cd test | |
35 | $ echo a > a |
|
35 | $ echo a > a | |
36 | $ hg -q ci -m "a" -A |
|
36 | $ hg -q ci -m "a" -A | |
37 | $ echo b > b |
|
37 | $ echo b > b | |
38 | $ hg -q ci -m "b" -A |
|
38 | $ hg -q ci -m "b" -A | |
39 | $ echo b2 >> b |
|
39 | $ echo b2 >> b | |
40 | $ hg -q ci -m "b2" -A |
|
40 | $ hg -q ci -m "b2" -A | |
41 | $ echo c > c |
|
41 | $ echo c > c | |
42 | $ hg -q ci -m "c" -A |
|
42 | $ hg -q ci -m "c" -A | |
43 | $ teststrip 0 2 w .hg/store/data/b.i |
|
43 | $ teststrip 0 2 w .hg/store/data/b.i | |
44 | % before update 0, strip 2 |
|
44 | % before update 0, strip 2 | |
45 | changeset: 0:cb9a9f314b8b |
|
45 | changeset: 0:cb9a9f314b8b | |
46 | user: test |
|
46 | user: test | |
47 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
47 | date: Thu Jan 01 00:00:00 1970 +0000 | |
48 | summary: a |
|
48 | summary: a | |
49 |
|
49 | |||
50 | saved backup bundle |
|
50 | saved backup bundle | |
51 | transaction abort! |
|
51 | transaction abort! | |
52 | failed to truncate data/b.i |
|
52 | failed to truncate data/b.i | |
53 | rollback failed - please run hg recover |
|
53 | rollback failed - please run hg recover | |
54 | strip failed, backup bundle |
|
54 | strip failed, backup bundle | |
55 | abort: Permission denied .hg/store/data/b.i |
|
55 | abort: Permission denied .hg/store/data/b.i | |
56 | % after update 0, strip 2 |
|
56 | % after update 0, strip 2 | |
57 | abandoned transaction found - run hg recover |
|
57 | abandoned transaction found - run hg recover | |
58 | checking changesets |
|
58 | checking changesets | |
59 | checking manifests |
|
59 | checking manifests | |
60 | crosschecking files in changesets and manifests |
|
60 | crosschecking files in changesets and manifests | |
61 | checking files |
|
61 | checking files | |
62 | b@?: rev 1 points to nonexistent changeset 2 |
|
62 | b@?: rev 1 points to nonexistent changeset 2 | |
63 | (expected 1) |
|
63 | (expected 1) | |
64 | b@?: 736c29771fba not in manifests |
|
64 | b@?: 736c29771fba not in manifests | |
65 | warning: orphan data file 'data/c.i' |
|
65 | warning: orphan data file 'data/c.i' | |
66 | 2 files, 2 changesets, 3 total revisions |
|
66 | 2 files, 2 changesets, 3 total revisions | |
67 | 2 warnings encountered! |
|
67 | 2 warnings encountered! | |
68 | 2 integrity errors encountered! |
|
68 | 2 integrity errors encountered! | |
69 | % journal contents |
|
69 | % journal contents | |
70 | 00changelog.i |
|
70 | 00changelog.i | |
71 | 00manifest.i |
|
71 | 00manifest.i | |
72 | data/b.i |
|
72 | data/b.i | |
73 | data/c.i |
|
73 | data/c.i | |
74 | rolling back interrupted transaction |
|
74 | rolling back interrupted transaction | |
75 | checking changesets |
|
75 | checking changesets | |
76 | checking manifests |
|
76 | checking manifests | |
77 | crosschecking files in changesets and manifests |
|
77 | crosschecking files in changesets and manifests | |
78 | checking files |
|
78 | checking files | |
79 | 2 files, 2 changesets, 2 total revisions |
|
79 | 2 files, 2 changesets, 2 total revisions | |
80 | $ teststrip 0 2 r .hg/store/data/b.i |
|
80 | $ teststrip 0 2 r .hg/store/data/b.i | |
81 | % before update 0, strip 2 |
|
81 | % before update 0, strip 2 | |
82 | changeset: 0:cb9a9f314b8b |
|
82 | changeset: 0:cb9a9f314b8b | |
83 | user: test |
|
83 | user: test | |
84 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
84 | date: Thu Jan 01 00:00:00 1970 +0000 | |
85 | summary: a |
|
85 | summary: a | |
86 |
|
86 | |||
87 | abort: Permission denied .hg/store/data/b.i |
|
87 | abort: Permission denied .hg/store/data/b.i | |
88 | % after update 0, strip 2 |
|
88 | % after update 0, strip 2 | |
89 | checking changesets |
|
89 | checking changesets | |
90 | checking manifests |
|
90 | checking manifests | |
91 | crosschecking files in changesets and manifests |
|
91 | crosschecking files in changesets and manifests | |
92 | checking files |
|
92 | checking files | |
93 | 3 files, 4 changesets, 4 total revisions |
|
93 | 3 files, 4 changesets, 4 total revisions | |
94 | % journal contents |
|
94 | % journal contents | |
95 | (no journal) |
|
95 | (no journal) | |
96 | $ teststrip 0 2 w .hg/store/00manifest.i |
|
96 | $ teststrip 0 2 w .hg/store/00manifest.i | |
97 | % before update 0, strip 2 |
|
97 | % before update 0, strip 2 | |
98 | changeset: 0:cb9a9f314b8b |
|
98 | changeset: 0:cb9a9f314b8b | |
99 | user: test |
|
99 | user: test | |
100 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
100 | date: Thu Jan 01 00:00:00 1970 +0000 | |
101 | summary: a |
|
101 | summary: a | |
102 |
|
102 | |||
103 | saved backup bundle |
|
103 | saved backup bundle | |
104 | transaction abort! |
|
104 | transaction abort! | |
105 | failed to truncate 00manifest.i |
|
105 | failed to truncate 00manifest.i | |
106 | rollback failed - please run hg recover |
|
106 | rollback failed - please run hg recover | |
107 | strip failed, backup bundle |
|
107 | strip failed, backup bundle | |
108 | abort: Permission denied .hg/store/00manifest.i |
|
108 | abort: Permission denied .hg/store/00manifest.i | |
109 | % after update 0, strip 2 |
|
109 | % after update 0, strip 2 | |
110 | abandoned transaction found - run hg recover |
|
110 | abandoned transaction found - run hg recover | |
111 | checking changesets |
|
111 | checking changesets | |
112 | checking manifests |
|
112 | checking manifests | |
113 | manifest@?: rev 2 points to nonexistent changeset 2 |
|
113 | manifest@?: rev 2 points to nonexistent changeset 2 | |
114 | manifest@?: 3362547cdf64 not in changesets |
|
114 | manifest@?: 3362547cdf64 not in changesets | |
115 | manifest@?: rev 3 points to nonexistent changeset 3 |
|
115 | manifest@?: rev 3 points to nonexistent changeset 3 | |
116 | manifest@?: 265a85892ecb not in changesets |
|
116 | manifest@?: 265a85892ecb not in changesets | |
117 | crosschecking files in changesets and manifests |
|
117 | crosschecking files in changesets and manifests | |
118 | c@3: in manifest but not in changeset |
|
118 | c@3: in manifest but not in changeset | |
119 | checking files |
|
119 | checking files | |
120 | b@?: rev 1 points to nonexistent changeset 2 |
|
120 | b@?: rev 1 points to nonexistent changeset 2 | |
121 | (expected 1) |
|
121 | (expected 1) | |
122 | c@?: rev 0 points to nonexistent changeset 3 |
|
122 | c@?: rev 0 points to nonexistent changeset 3 | |
123 | 3 files, 2 changesets, 4 total revisions |
|
123 | 3 files, 2 changesets, 4 total revisions | |
124 | 1 warnings encountered! |
|
124 | 1 warnings encountered! | |
125 | 7 integrity errors encountered! |
|
125 | 7 integrity errors encountered! | |
126 | (first damaged changeset appears to be 3) |
|
126 | (first damaged changeset appears to be 3) | |
127 | % journal contents |
|
127 | % journal contents | |
128 | 00changelog.i |
|
128 | 00changelog.i | |
129 | 00manifest.i |
|
129 | 00manifest.i | |
130 | data/b.i |
|
130 | data/b.i | |
131 | data/c.i |
|
131 | data/c.i | |
132 | rolling back interrupted transaction |
|
132 | rolling back interrupted transaction | |
133 | checking changesets |
|
133 | checking changesets | |
134 | checking manifests |
|
134 | checking manifests | |
135 | crosschecking files in changesets and manifests |
|
135 | crosschecking files in changesets and manifests | |
136 | checking files |
|
136 | checking files | |
137 | 2 files, 2 changesets, 2 total revisions |
|
137 | 2 files, 2 changesets, 2 total revisions | |
138 |
|
138 | |||
139 | $ cd .. |
|
139 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now