Mon, 08 Feb 2016 14:17:11 -0800 filectx: replace use of _filerev with _filenode
Durham Goode <durham@fb.com> [Mon, 08 Feb 2016 14:17:11 -0800] rev 28116
filectx: replace use of _filerev with _filenode _filerev depends on the filelog implementation using revlogs and linkrevs. Alternative implementations, like remotefilelog, do not have rev numbers, so this call fails. Replacing it with _filenode means it doesn't rely on rev numbers, and doesn't cost anything extra, since _filerev is using _filenode under the hood anyway.
Wed, 03 Feb 2016 15:53:48 -0800 verify: extract "manifest" constant into variable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2016 15:53:48 -0800] rev 28115
verify: extract "manifest" constant into variable The "manifest" label that's used in error messages will instead be the directory path for subdirectory manifests (not the root manifest), so let's extract the constant to a variable already to make future patches simpler.
Sun, 07 Feb 2016 22:46:20 -0800 verify: use similar language for missing manifest and file revisions
Martin von Zweigbergk <martinvonz@google.com> [Sun, 07 Feb 2016 22:46:20 -0800] rev 28114
verify: use similar language for missing manifest and file revisions When a changeset refers to a manifest revision that's not found in the manifest log, we say "changeset refers to missing revision X", but when a manifest refers to file revision that's not found in the filelog, we say "X in manifests not found". The language used for missing manifest revisions seems clearer, so let's use that for missing filelog revisions too.
Tue, 02 Feb 2016 10:42:28 -0800 verify: include "manifest" prefix in a few more places
Martin von Zweigbergk <martinvonz@google.com> [Tue, 02 Feb 2016 10:42:28 -0800] rev 28113
verify: include "manifest" prefix in a few more places We include the "manifest" prefix on most other errors, so it seems consistent to add them to the remaining messages too. Also, having the "manifest" prefix will be more consistent with having the directory prefix there when we add support for treemanifests. With the "manifest" at the beginning, let's remove the now-redundant "manifest" in the message itself.
Tue, 02 Feb 2016 09:46:14 -0800 verify: drop unnecessary check for nullid
Martin von Zweigbergk <martinvonz@google.com> [Tue, 02 Feb 2016 09:46:14 -0800] rev 28112
verify: drop unnecessary check for nullid In eb914541a950 (verify: filter messages about missing null manifests (issue2900), 2011-07-13), we started ignoring nullid in the list of manifest nodeids to check. Then, in b32a30da608d (verify: do not choke on valid changelog without manifest, 2012-08-21), we stopped adding nullid to the list to start with. So let's drop the left-over check now.
Sun, 31 Jan 2016 00:10:56 -0800 verify: move cross-checking of changeset/manifest out of _crosscheckfiles()
Martin von Zweigbergk <martinvonz@google.com> [Sun, 31 Jan 2016 00:10:56 -0800] rev 28111
verify: move cross-checking of changeset/manifest out of _crosscheckfiles() Reasons: * _crosscheckfiles(), as the name suggests, is about checking that the set of files files mentioned in changesets match the set of files mentioned in the manifests. * The "checking" in _crosscheckfiles() looked rather strange, as it just emitted an error for *every* entry in mflinkrevs. The reason was that these were the entries remaining after the call to _verifymanifest(). Moving all the processing of mflinkrevs into _verifymanifest() makes it much clearer that it's the remaining entries that are a problem. Functional change: progress is no longer reported for "crosschecking" of missing manifest entries. Since the crosschecking phase takes a tiny fraction of the verification, I don't think this is a problem. Also, any reports of "changeset refers to unknown manifest" will now come before "crosschecking files in changesets and manifests".
Sun, 31 Jan 2016 21:55:52 -0800 tests: add tests for missing revlogs and revlog entries
Martin von Zweigbergk <martinvonz@google.com> [Sun, 31 Jan 2016 21:55:52 -0800] rev 28110
tests: add tests for missing revlogs and revlog entries The verify code is pretty poorly tested. It's easy to test missing revlogs and missing revlog entries, so let's add tests for that. Also add some more tests corrupting each type of revlog, so we test the messages presented when reading a revision fails. The pure and native implementations produce different error messages, so we have to use (glob) in the tests.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 +1000 +3000 +10000 tip