~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/add.py

  • Committer: Robert Collins
  • Date: 2005-08-25 02:43:15 UTC
  • mto: (974.1.50) (1185.1.10) (1092.3.1)
  • mto: This revision was merged to the branch mainline in revision 1139.
  • Revision ID: robertc@robertcollins.net-20050825024315-01e64162aa925ac3
change smart_add reporting of added files to callback with the entry, and change the inventory.add signature to return the added entry

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
            expanded_file_list += glob_files
34
34
    return expanded_file_list
35
35
 
 
36
def _NullAddCallback(entry):
 
37
    pass
 
38
 
 
39
def _PrintAddCallback(entry):
 
40
    from bzrlib.osutils import quotefn
 
41
    print "added", quotefn(entry.name)
 
42
    
36
43
def _prepare_file_list(file_list):
37
44
    """Prepare a file list for use by smart_add_*."""
38
45
    import sys
44
51
    assert not isinstance(file_list, basestring)
45
52
    return file_list
46
53
 
47
 
def smart_add(file_list, verbose=True, recurse=True):
 
54
def smart_add(file_list, verbose=True, recurse=True, callback=_NullAddCallback):
48
55
    """Add files to version, optionally recursing into directories.
49
56
 
50
57
    This is designed more towards DWIM for humans than API simplicity.
54
61
    b = Branch(file_list[0], find_root=True)
55
62
    return smart_add_branch(b, file_list, verbose, recurse)
56
63
        
57
 
def smart_add_branch(branch, file_list, verbose=True, recurse=True):
 
64
def smart_add_branch(branch, file_list, verbose=True, recurse=True,
 
65
                     callback=_NullAddCallback):
58
66
    """Add files to version, optionally recursing into directories.
59
67
 
60
68
    This is designed more towards DWIM for humans than API simplicity.
110
118
        elif sub_tree:
111
119
            mutter("%r is a bzr tree" %f)
112
120
        else:
113
 
            file_id = bzrlib.branch.gen_file_id(rf)
114
 
            inv.add_path(rf, kind=kind, file_id=file_id)
115
 
            mutter("added %r kind %r file_id={%s}" % (rf, kind, file_id))
 
121
            entry = inv.add_path(rf, kind=kind)
 
122
            mutter("added %r kind %r file_id={%s}" % (rf, kind, entry.file_id))
116
123
            count += 1 
117
 
 
118
 
            print 'added', quotefn(f)
 
124
            callback(entry)
119
125
 
120
126
        if kind == 'directory' and recurse and not sub_tree:
121
127
            for subf in os.listdir(af):