Mercurial > hg
comparison mercurial/verify.py @ 3196:f3b939444c72
Abstract manifest block parsing.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Fri, 29 Sep 2006 13:00:54 -0700 |
parents | fdc232d8a193 |
children | 0e68608bd11d |
comparison
equal
deleted
inserted
replaced
3195:705e30c0a230 | 3196:f3b939444c72 |
---|---|
100 if p not in repo.manifest.nodemap: | 100 if p not in repo.manifest.nodemap: |
101 err(_("manifest %s has unknown parent %s") % | 101 err(_("manifest %s has unknown parent %s") % |
102 (short(n), short(p))) | 102 (short(n), short(p))) |
103 | 103 |
104 try: | 104 try: |
105 delta = mdiff.patchtext(repo.manifest.delta(n)) | 105 for f, fn in repo.manifest.readdelta(n).iteritems(): |
106 filenodes.setdefault(f, {})[fn] = 1 | |
106 except KeyboardInterrupt: | 107 except KeyboardInterrupt: |
107 repo.ui.warn(_("interrupted")) | 108 repo.ui.warn(_("interrupted")) |
108 raise | 109 raise |
109 except Exception, inst: | 110 except Exception, inst: |
110 err(_("unpacking manifest %s: %s") % (short(n), inst)) | 111 err(_("reading delta for manifest %s: %s") % (short(n), inst)) |
111 continue | 112 continue |
112 | |
113 try: | |
114 ff = [ l.split('\0') for l in delta.splitlines() ] | |
115 for f, fn in ff: | |
116 filenodes.setdefault(f, {})[bin(fn[:40])] = 1 | |
117 except (ValueError, TypeError), inst: | |
118 err(_("broken delta in manifest %s: %s") % (short(n), inst)) | |
119 | 113 |
120 repo.ui.status(_("crosschecking files in changesets and manifests\n")) | 114 repo.ui.status(_("crosschecking files in changesets and manifests\n")) |
121 | 115 |
122 for m, c in neededmanifests.items(): | 116 for m, c in neededmanifests.items(): |
123 err(_("Changeset %s refers to unknown manifest %s") % | 117 err(_("Changeset %s refers to unknown manifest %s") % |