Show More
@@ -72,11 +72,16 b' def v1_censor(rl, tr, censornode, tombst' | |||||
72 | radix=rl.radix, |
|
72 | radix=rl.radix, | |
73 | postfix=b'tmpcensored', |
|
73 | postfix=b'tmpcensored', | |
74 | censorable=True, |
|
74 | censorable=True, | |
|
75 | data_config=rl.data_config, | |||
|
76 | delta_config=rl.delta_config, | |||
|
77 | feature_config=rl.feature_config, | |||
|
78 | may_inline=rl._inline, | |||
75 | ) |
|
79 | ) | |
76 | newrl._format_version = rl._format_version |
|
80 | # inline splitting will prepare some transaction work that will get | |
77 | newrl._format_flags = rl._format_flags |
|
81 | # confused by the final file move. So if there is a risk of not being | |
78 | newrl.delta_config.general_delta = rl.delta_config.general_delta |
|
82 | # inline at the end, we prevent the new revlog to be inline in the first | |
79 | newrl._parse_index = rl._parse_index |
|
83 | # place. | |
|
84 | assert not (newrl._inline and not rl._inline) | |||
80 |
|
85 | |||
81 | for rev in rl.revs(): |
|
86 | for rev in rl.revs(): | |
82 | node = rl.node(rev) |
|
87 | node = rl.node(rev) | |
@@ -122,7 +127,10 b' def v1_censor(rl, tr, censornode, tombst' | |||||
122 | tr.addbackup(rl._datafile, location=b'store') |
|
127 | tr.addbackup(rl._datafile, location=b'store') | |
123 |
|
128 | |||
124 | rl.opener.rename(newrl._indexfile, rl._indexfile) |
|
129 | rl.opener.rename(newrl._indexfile, rl._indexfile) | |
125 |
if n |
|
130 | if newrl._inline: | |
|
131 | assert rl._inline | |||
|
132 | else: | |||
|
133 | assert not rl._inline | |||
126 | rl.opener.rename(newrl._datafile, rl._datafile) |
|
134 | rl.opener.rename(newrl._datafile, rl._datafile) | |
127 |
|
135 | |||
128 | rl.clearcaches() |
|
136 | rl.clearcaches() |
@@ -298,12 +298,9 b' Can censor enough revision to move back ' | |||||
298 |
|
298 | |||
299 | $ hg debugrevlogstats | grep target |
|
299 | $ hg debugrevlogstats | grep target | |
300 | rev-count data-size inl type target |
|
300 | rev-count data-size inl type target | |
301 |
8 |
|
301 | 8 ??? no file target (glob) (revlogv2 !) | |
302 |
8 |
|
302 | 8 ??? yes file target (glob) (revlogv1 !) | |
303 | $ for x in `"$PYTHON" $TESTDIR/seq.py 0 50000` |
|
303 | $ cat /dev/rand?m | dd status=none count=200 | f --hexdump > target | |
304 | > do |
|
|||
305 | > echo "Password: hunter$x" >> target |
|
|||
306 | > done |
|
|||
307 |
$ |
|
304 | $ hg ci -m 'add 100k passwords' | |
308 | $ H2=`hg id --debug -i` |
|
305 | $ H2=`hg id --debug -i` | |
309 | $ C5=$H2 |
|
306 | $ C5=$H2 | |
@@ -312,17 +309,25 b' Can censor enough revision to move back ' | |||||
312 | $ H2=`hg id --debug -i` |
|
309 | $ H2=`hg id --debug -i` | |
313 | $ hg debugrevlogstats | grep target |
|
310 | $ hg debugrevlogstats | grep target | |
314 | rev-count data-size inl type target |
|
311 | rev-count data-size inl type target | |
315 |
10 ?????? |
|
312 | 10 ?????? no file target (glob) | |
316 | 10 ????????? no file target (glob) (missing-correct-output revlogv1 !) |
|
|||
317 | 10 ????????? yes file target (glob) (known-bad-output revlogv1 !) |
|
|||
318 |
$ |
|
313 | $ hg --config extensions.censor= censor -r $C5 target | |
|
314 | ||||
|
315 | The important part is for the censor operation to not crash and the repository | |||
|
316 | to not be corrupted. Right now this involve keeping the revlog split. | |||
|
317 | ||||
319 | $ hg debugrevlogstats | grep target |
|
318 | $ hg debugrevlogstats | grep target | |
320 | rev-count data-size inl type target |
|
319 | rev-count data-size inl type target | |
321 |
10 |
|
320 | 10 ??? no file target (glob) | |
322 | 10 ????????? yes file target (glob) (revlogv1 !) |
|
|||
323 | $ hg cat -r $C5 target | head -n 10 |
|
321 | $ hg cat -r $C5 target | head -n 10 | |
324 | $ hg cat -r $H2 target | head -n 10 |
|
322 | $ hg cat -r $H2 target | head -n 10 | |
325 | fresh start |
|
323 | fresh start | |
|
324 | $ hg verify | |||
|
325 | checking changesets | |||
|
326 | checking manifests | |||
|
327 | crosschecking files in changesets and manifests | |||
|
328 | checking files | |||
|
329 | checking dirstate | |||
|
330 | checked 12 changesets with 13 changes to 2 files | |||
326 |
|
331 | |||
327 | Repo with censored nodes can be cloned and cloned nodes are censored |
|
332 | Repo with censored nodes can be cloned and cloned nodes are censored | |
328 |
|
333 | |||
@@ -354,7 +359,7 b' Repo cloned before tainted content intro' | |||||
354 | adding manifests |
|
359 | adding manifests | |
355 | adding file changes |
|
360 | adding file changes | |
356 | added 11 changesets with 11 changes to 2 files (+1 heads) |
|
361 | added 11 changesets with 11 changes to 2 files (+1 heads) | |
357 | new changesets 186fb27560c3:683e4645fded |
|
362 | new changesets * (glob) | |
358 | (run 'hg heads' to see heads, 'hg merge' to merge) |
|
363 | (run 'hg heads' to see heads, 'hg merge' to merge) | |
359 | $ hg update 4 |
|
364 | $ hg update 4 | |
360 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
365 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
@@ -414,7 +419,7 b' Censored nodes can be bundled up and unb' | |||||
414 | adding manifests |
|
419 | adding manifests | |
415 | adding file changes |
|
420 | adding file changes | |
416 | added 2 changesets with 2 changes to 2 files (+1 heads) |
|
421 | added 2 changesets with 2 changes to 2 files (+1 heads) | |
417 | new changesets 075be80ac777:dcbaf17bf3a1 (2 drafts) |
|
422 | new changesets * (glob) | |
418 | (run 'hg heads .' to see heads, 'hg merge' to merge) |
|
423 | (run 'hg heads .' to see heads, 'hg merge' to merge) | |
419 | $ hg cat -r $REV target | head -n 10 |
|
424 | $ hg cat -r $REV target | head -n 10 | |
420 | $ hg cat -r $CLEANREV target | head -n 10 |
|
425 | $ hg cat -r $CLEANREV target | head -n 10 | |
@@ -471,7 +476,7 b' Censored nodes can be imported on top of' | |||||
471 | adding manifests |
|
476 | adding manifests | |
472 | adding file changes |
|
477 | adding file changes | |
473 | added 6 changesets with 5 changes to 2 files (+1 heads) |
|
478 | added 6 changesets with 5 changes to 2 files (+1 heads) | |
474 | new changesets efbe78065929:683e4645fded (6 drafts) |
|
479 | new changesets * (glob) | |
475 | (run 'hg heads .' to see heads, 'hg merge' to merge) |
|
480 | (run 'hg heads .' to see heads, 'hg merge' to merge) | |
476 | $ hg update $H2 |
|
481 | $ hg update $H2 | |
477 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
482 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
General Comments 0
You need to be logged in to leave comments.
Login now