~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/add.py

  • Committer: Robert Collins
  • Date: 2005-09-27 07:24:40 UTC
  • mfrom: (1185.1.41)
  • Revision ID: robertc@robertcollins.net-20050927072440-1bf4d99c3e1db5b3
pair programming worx... merge integration and weave

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from bzrlib.errors import NotBranchError
19
19
from bzrlib.branch import Branch
20
20
from bzrlib.osutils import quotefn
 
21
from os.path import dirname
21
22
 
22
23
def glob_expand_for_win32(file_list):
23
24
    import glob
24
 
    
25
25
    expanded_file_list = []
26
26
    for possible_glob in file_list:
27
27
        glob_files = glob.glob(possible_glob)
63
63
    Returns the number of files added.
64
64
    """
65
65
    file_list = _prepare_file_list(file_list)
66
 
    b = Branch(file_list[0], find_root=True)
 
66
    b = Branch.open_containing(file_list[0])
67
67
    return smart_add_branch(b, file_list, recurse, reporter)
68
68
 
69
69
        
78
78
    Returns the number of files added.
79
79
    """
80
80
    import os
81
 
    import sys
82
 
    from bzrlib.osutils import quotefn
83
81
    from bzrlib.errors import BadFileKindError, ForbiddenFileError
84
82
    import bzrlib.branch
85
 
    import bzrlib.osutils
86
83
 
87
84
    assert isinstance(recurse, bool)
88
85
 
114
111
 
115
112
        if kind == 'directory':
116
113
            try:
117
 
                sub_branch = Branch(af, find_root=False)
 
114
                sub_branch = Branch.open(af)
118
115
                sub_tree = True
119
116
            except NotBranchError:
120
117
                sub_tree = False
129
126
        elif sub_tree:
130
127
            mutter("%r is a bzr tree" %f)
131
128
        else:
132
 
            entry = inv.add_path(rf, kind=kind)
133
 
            mutter("added %r kind %r file_id={%s}" % (rf, kind, entry.file_id))
134
 
            count += 1 
135
 
            reporter(rf, kind, entry)
 
129
            count += __add_one(branch, inv, rf, kind, reporter)
136
130
 
137
131
        if kind == 'directory' and recurse and not sub_tree:
138
132
            for subf in os.listdir(af):
152
146
        branch._write_inventory(inv)
153
147
 
154
148
    return count
 
149
 
 
150
def __add_one(branch, inv, path, kind, reporter):
 
151
    """Add a file or directory, automatically add unversioned parents."""
 
152
 
 
153
    # Nothing to do if path is already versioned.
 
154
    # This is safe from infinite recursion because the branch root is
 
155
    # always versioned.
 
156
    if inv.path2id(path) != None:
 
157
        return 0
 
158
 
 
159
    # add parent
 
160
    count = __add_one(branch, inv, dirname(path), 'directory', reporter)
 
161
 
 
162
    entry = inv.add_path(path, kind=kind)
 
163
    mutter("added %r kind %r file_id={%s}" % (path, kind, entry.file_id))
 
164
    reporter(path, kind, entry)
 
165
 
 
166
    return count + 1