~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/add.py

  • Committer: Martin Pool
  • Date: 2005-05-30 05:10:41 UTC
  • Revision ID: mbp@sourcefrog.net-20050530051041-151c592d94481593
- better error reporting from smart_add

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
import os, sys
18
18
import bzrlib
19
19
 
20
 
from errors import bailout
21
20
from trace import mutter, note
22
21
 
23
22
def smart_add(file_list, verbose=True, recurse=True):
27
26
    For the specific behaviour see the help for cmd_add().
28
27
    """
29
28
    from bzrlib.osutils import quotefn, kind_marker
30
 
    
 
29
    from bzrlib.errors import BadFileKindError, ForbiddenFileError
 
30
 
31
31
    assert file_list
32
32
    user_list = file_list[:]
33
33
    assert not isinstance(file_list, basestring)
43
43
        kind = bzrlib.osutils.file_kind(af)
44
44
 
45
45
        if kind != 'file' and kind != 'directory':
46
 
            if f not in user_list:
47
 
                print "Skipping %s (can't add file of kind '%s')" % (f, kind)
 
46
            if f in user_list:
 
47
                raise BadFileKindError("cannot add %s of type %s" % (f, kind))
 
48
            else:
 
49
                print "skipping %s (can't add file of kind '%s')" % (f, kind)
48
50
                continue
49
 
            bailout("can't add file of kind %r" % kind)
50
51
 
51
52
        bzrlib.mutter("smart add of %r, abs=%r" % (f, af))
52
53
        
53
54
        if bzrlib.branch.is_control_file(af):
54
 
            bailout("cannot add control file %r" % af)
 
55
            raise ForbiddenFileError('cannot add control file %s' % f)
55
56
            
56
57
        versioned = (inv.path2id(rf) != None)
57
58