~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/check.py

  • Committer: Martin Pool
  • Date: 2005-09-21 09:06:23 UTC
  • Revision ID: mbp@sourcefrog.net-20050921090623-5fccac374efc7273
- refactor check code into method object

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
# TODO: Check ancestries are correct for every revision: includes
19
19
# every committed so far, and in a reasonable order.
20
20
 
 
21
# TODO: Also check non-mainline revisions mentioned as parents.
 
22
 
 
23
# TODO: Check for extra files in the control directory.
 
24
 
 
25
 
21
26
import bzrlib.ui
22
27
from bzrlib.trace import note, warning
23
28
from bzrlib.osutils import rename, sha_string, fingerprint_file
27
32
from bzrlib.branch import gen_root_id
28
33
 
29
34
 
30
 
def check(branch):
31
 
    """Run consistency checks on a branch.
32
 
 
33
 
    TODO: Also check non-mainline revisions mentioned as parents.
34
 
 
35
 
    TODO: Check for extra files in the control directory.
36
 
    """
37
 
    branch.lock_read()
38
 
 
39
 
    try:
 
35
class Check(object):
 
36
    """Check a branch"""
 
37
    def __init__(self, branch):
 
38
        self.branch = branch
 
39
        self.run()
 
40
 
 
41
 
 
42
    def run(self):
 
43
        branch = self.branch
 
44
 
40
45
        last_rev_id = None
41
46
 
42
47
        missing_inventory_sha_cnt = 0
136
141
                seen_names[path] = True
137
142
            last_rev_id = rev_id
138
143
 
139
 
    finally:
140
 
        branch.unlock()
141
 
 
142
 
    progress.clear()
143
 
 
144
 
    note('checked %d revisions, %d file texts' % (revcount, checked_text_count))
145
 
    
146
 
    if missing_inventory_sha_cnt:
147
 
        note('%d revisions are missing inventory_sha1' % missing_inventory_sha_cnt)
148
 
 
149
 
    ##if missing_revision_sha_cnt:
150
 
    ##    note('%d parent links are missing revision_sha1' % missing_revision_sha_cnt)
151
 
 
152
 
    if missing_revision_cnt:
153
 
        note('%d revisions are mentioned but not present' % missing_revision_cnt)
154
 
 
155
 
    if missing_revision_cnt:
156
 
        print '%d revisions are mentioned but not present' % missing_revision_cnt
157
 
 
158
 
    # stub this out for now because the main bzr branch has references
159
 
    # to revisions that aren't present in the store -- mbp 20050804
160
 
#    if (missing_inventory_sha_cnt
161
 
#        or missing_revision_sha_cnt):
162
 
#        print '  (use "bzr upgrade" to fix them)'
 
144
 
 
145
        progress.clear()
 
146
 
 
147
        note('checked %d revisions, %d file texts' % (revcount, checked_text_count))
 
148
 
 
149
        if missing_inventory_sha_cnt:
 
150
            note('%d revisions are missing inventory_sha1' % missing_inventory_sha_cnt)
 
151
 
 
152
        ##if missing_revision_sha_cnt:
 
153
        ##    note('%d parent links are missing revision_sha1' % missing_revision_sha_cnt)
 
154
 
 
155
        if missing_revision_cnt:
 
156
            note('%d revisions are mentioned but not present' % missing_revision_cnt)
 
157
 
 
158
        if missing_revision_cnt:
 
159
            print '%d revisions are mentioned but not present' % missing_revision_cnt
 
160
 
 
161
        # stub this out for now because the main bzr branch has references
 
162
        # to revisions that aren't present in the store -- mbp 20050804
 
163
    #    if (missing_inventory_sha_cnt
 
164
    #        or missing_revision_sha_cnt):
 
165
    #        print '  (use "bzr upgrade" to fix them)'
 
166
 
 
167
 
 
168
 
 
169
 
 
170
        
 
171
 
 
172
 
 
173
def check(branch):
 
174
    """Run consistency checks on a branch."""
 
175
    Check(branch)