/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/check.py

  • Committer: Robert Collins
  • Date: 2007-11-05 19:40:28 UTC
  • mfrom: (2963 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2967.
  • Revision ID: robertc@robertcollins.net-20071105194028-5gc6rdajk96maaq1
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
            self.repository)
61
61
        self.unreferenced_ancestors = set()
62
62
        self.inconsistent_parents = []
 
63
        self.dangling_versions = set()
63
64
 
64
65
    def check(self):
65
66
        self.repository.lock_read()
156
157
                        '       %s has wrong parents in index: '
157
158
                        '%r should be %r',
158
159
                        revision_id, index_parents, actual_parents)
 
160
        if self.dangling_versions:
 
161
            note('%6d file versions are not referenced by their inventory',
 
162
                 len(self.dangling_versions))
159
163
 
160
164
    def check_one_rev(self, rev_id):
161
165
        """Check one revision.
214
218
            weave_checker = self.repository.get_versioned_file_checker(
215
219
                self.planned_revisions, self.revision_versions)
216
220
            result = weave_checker.check_file_version_parents(w, weave_id)
217
 
 
218
 
            for revision_id, (weave_parents,correct_parents) in result.items():
 
221
            bad_parents, dangling_versions = result
 
222
            bad_parents = bad_parents.items()
 
223
            for revision_id, (weave_parents,correct_parents) in bad_parents:
219
224
                self.inconsistent_parents.append(
220
225
                    (revision_id, weave_id, weave_parents, correct_parents))
 
226
                if weave_parents is None:
 
227
                    weave_parents = []
221
228
                unreferenced_parents = set(weave_parents)-set(correct_parents)
222
229
                for unreferenced_parent in unreferenced_parents:
223
230
                    self.unreferenced_ancestors.add(
224
231
                        (weave_id, unreferenced_parent))
 
232
            self.dangling_versions.update(dangling_versions)
225
233
            self.checked_weaves[weave_id] = True
226
234
 
227
235
    def _check_revision_tree(self, rev_id):