Verify can be extremely slow on large repos, as it tries to inspect every
commit, possibly downloading trees for each one, so this extension disables it.
This also disables the verification step of rollback.
durham | |
quark |
Restricted Project |
Verify can be extremely slow on large repos, as it tries to inspect every
commit, possibly downloading trees for each one, so this extension disables it.
This also disables the verification step of rollback.
Lint Skipped |
Unit Tests Skipped |
hgext3rd/noverify.py | ||
---|---|---|
31 | Assuming 0 is to notify success, should this actually be 0? |
I guess the main issue here is the "verify after rollback". Verification might still be useful especially for the last few revisions.
IDI is working on adding --rev to verify. It's probably better to still verify the tip revision instead of skipping everything.
hgext3rd/noverify.py | ||
---|---|---|
30 | Missing _ |
hgext3rd/noverify.py | ||
---|---|---|
30 | That's a good spot! |
hgext3rd/noverify.py | ||
---|---|---|
31 | Ah, sometimes we use () (like in debugpackstatus), and sometimes _(). When should we use which? |
Added a test, description and moved to config.
I like Jun's idea of looking at the last few commits as a hueristic, but here's a version we can get out quickly in the interim.
Why not disable only manifest verification, which is the slow thing here? changelog verification since that can't be re-downloaded on-demand seems reasonable to me. This, of course, is probably effective enough but just kicsk the can down the road if there's an actual corruption issue in a revlog.
OK, extracting just the manifest verification will take a bit of upstream refactoring. I'll send an upstream change to do that + a followup to scope this to just changesets. But people are still running verifies that take 4 days and make tons of packfiles, so I'm still +1 on landing this while that's happening.
(Need to look at https://phabricator.intern.facebook.com/D6558110 too which is touching verify)
Based on Messenger discussion, this version just skips the manifest verification and future steps which require it, but keeps changeset verification. Can probably get by without upstream refactor.
Let's default the behavior to on. Since the only reason the extension would be enabled is to disable the behavior. Then we can just use the config knob later if we need more flexibility.
Missing _