~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/check.py

  • Committer: mbp at sourcefrog
  • Date: 2005-04-05 09:05:32 UTC
  • Revision ID: mbp@sourcefrog.net-20050405090532-af541f6893fd6b75
- clearer check against attempts to introduce directory loops in   the inventory

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import sys
24
24
from sets import Set
25
25
 
 
26
import bzrlib
26
27
from trace import mutter
27
28
from errors import bailout
28
29
import osutils
30
31
def check(branch, progress=True):
31
32
    out = sys.stdout
32
33
 
33
 
    # TODO: factor out
34
 
    if not (hasattr(out, 'isatty') and out.isatty()):
35
 
        progress=False
36
 
 
37
34
    if progress:
38
35
        def p(m):
39
36
            mutter('checking ' + m)
77
74
        for file_id in inv:
78
75
            if file_id in seen_ids:
79
76
                bailout('duplicated file_id {%s} in inventory for revision {%s}'
80
 
                        % (file_id, rid))
 
77
                        % (file_id, revid))
81
78
            seen_ids.add(file_id)
82
79
 
83
80
        i = 0
92
89
            if ie.parent_id != None:
93
90
                if ie.parent_id not in seen_ids:
94
91
                    bailout('missing parent {%s} in inventory for revision {%s}'
95
 
                            % (ie.parent_id, rid))
 
92
                            % (ie.parent_id, revid))
96
93
 
97
94
            if ie.kind == 'file':
98
95
                if ie.text_id in checked_texts:
112
109
            elif ie.kind == 'directory':
113
110
                if ie.text_sha1 != None or ie.text_size != None or ie.text_id != None:
114
111
                    bailout('directory {%s} has text in revision {%s}'
115
 
                            % (file_id, rid))
 
112
                            % (file_id, revid))
116
113
 
117
114
        p('revision %d/%d file paths' % (revno, revcount))
118
115
        for path, ie in inv.iter_entries():
124
121
    p('done')
125
122
    if progress:
126
123
        print 
127
 
    print 'checked %d revisions, %d file texts' % (revcount, len(checked_texts))
 
124
 
128
125