~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/check.py

  • Committer: Vincent Ladeuil
  • Date: 2011-05-17 20:58:43 UTC
  • mfrom: (5609.39.5 2.3)
  • mto: This revision was merged to the branch mainline in revision 5885.
  • Revision ID: v.ladeuil+lp@free.fr-20110517205843-uo1tntrz6kqfn1hb
Merge 2.3 into trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
  indicating that the revision was found/not found.
47
47
"""
48
48
 
49
 
from bzrlib import errors
 
49
from bzrlib import (
 
50
    errors,
 
51
    ui,
 
52
    )
50
53
from bzrlib.branch import Branch
51
54
from bzrlib.bzrdir import BzrDir
52
55
from bzrlib.revision import NULL_REVISION
53
 
from bzrlib.symbol_versioning import deprecated_function, deprecated_in
54
56
from bzrlib.trace import note
55
 
import bzrlib.ui
56
57
from bzrlib.workingtree import WorkingTree
57
58
 
 
59
 
58
60
class Check(object):
59
61
    """Check a repository"""
60
62
 
 
63
    def __init__(self, repository, check_repo=True):
 
64
        self.repository = repository
 
65
 
 
66
    def report_results(self, verbose):
 
67
        raise NotImplementedError(self.report_results)
 
68
 
 
69
 
 
70
class VersionedFileCheck(Check):
 
71
    """Check a versioned file repository"""
 
72
 
61
73
    # The Check object interacts with InventoryEntry.check, etc.
62
74
 
63
75
    def __init__(self, repository, check_repo=True):
88
100
        if callback_refs is None:
89
101
            callback_refs = {}
90
102
        self.repository.lock_read()
91
 
        self.progress = bzrlib.ui.ui_factory.nested_progress_bar()
 
103
        self.progress = ui.ui_factory.nested_progress_bar()
92
104
        try:
93
105
            self.progress.update('check', 0, 4)
94
106
            if self.check_repo:
170
182
        # - we can fill out existence flags at this point
171
183
        # - we can read the revision inventory sha at this point
172
184
        # - we can check properties and serialisers etc.
173
 
        if not self.repository.revision_graph_can_have_wrong_parents():
 
185
        if not self.repository._format.revision_graph_can_have_wrong_parents:
174
186
            # The check against the index isn't needed.
175
187
            self.revs_with_bad_parents_in_index = None
176
188
            for thing in revision_iterator:
287
299
        """Check all the weaves we can get our hands on.
288
300
        """
289
301
        weave_ids = []
290
 
        storebar = bzrlib.ui.ui_factory.nested_progress_bar()
 
302
        storebar = ui.ui_factory.nested_progress_bar()
291
303
        try:
292
304
            self._check_weaves(storebar)
293
305
        finally:
328
340
            self.text_key_references[key] = True
329
341
 
330
342
 
331
 
@deprecated_function(deprecated_in((1,6,0)))
332
 
def check(branch, verbose):
333
 
    """Run consistency checks on a branch.
334
 
 
335
 
    Results are reported through logging.
336
 
 
337
 
    Deprecated in 1.6.  Please use check_dwim instead.
338
 
 
339
 
    :raise BzrCheckError: if there's a consistency error.
340
 
    """
341
 
    check_branch(branch, verbose)
342
 
 
343
 
 
344
 
@deprecated_function(deprecated_in((1,16,0)))
345
 
def check_branch(branch, verbose):
346
 
    """Run consistency checks on a branch.
347
 
 
348
 
    Results are reported through logging.
349
 
 
350
 
    :raise BzrCheckError: if there's a consistency error.
351
 
    """
352
 
    branch.lock_read()
353
 
    try:
354
 
        needed_refs = {}
355
 
        for ref in branch._get_check_refs():
356
 
            needed_refs.setdefault(ref, []).append(branch)
357
 
        result = branch.repository.check([branch.last_revision()], needed_refs)
358
 
        branch_result = result.other_results[0]
359
 
    finally:
360
 
        branch.unlock()
361
 
    branch_result.report_results(verbose)
362
 
 
363
 
 
364
343
def scan_branch(branch, needed_refs, to_unlock):
365
344
    """Scan a branch for refs.
366
345