~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to baz2bzr

  • Committer: abentley
  • Date: 2005-05-01 07:09:01 UTC
  • Revision ID: abentley@lappy-20050501070901-e0cdcb00ab4da732
started on pull script

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import bzrlib
32
32
import sys
33
33
from progress import *
 
34
bzrlib.trace.create_tracefile([])
34
35
 
35
36
def add_id(files, id=None):
36
37
    """Adds an explicit id to a list of files.
163
164
    'test@example.com/test--test--0--patch-1'
164
165
    >>> teardown_environ(q)
165
166
    """
166
 
    revision = version.iter_revisions().next()
167
 
    ancestors = list(revision.iter_ancestors(metoo=True))
 
167
    revision = version.archive.iter_revisions(version.nonarch).next()
 
168
    ancestors = list(revision.iter_ancestors())
168
169
    ancestors.reverse()
 
170
    ancestors.append(revision)
169
171
    return ancestors
170
172
 
171
173
 
184
186
    try:
185
187
        for result in iter_import_version(output_dir, version, tempdir):
186
188
            progress_bar(result)
 
189
        clear_progress_bar()
 
190
        print "Import complete."
187
191
    finally:
188
 
        clear_progress_bar()
189
192
        shutil.rmtree(tempdir)
190
 
    print "Import complete."
191
193
            
192
194
class UserError(Exception):
193
195
    def __init__(self, message):
232
234
    revision.get(revdir)
233
235
    tree = pybaz.tree_root(revdir)
234
236
    log = tree.iter_logs(reverse=True).next()
235
 
    try:
236
 
        return bzr_inventory_data(tree), log 
237
 
    except BadFileKind, e:
238
 
        raise UserError("Cannot convert %s because %s is a %s" % (revision,e.path, e.kind) )
239
 
 
 
237
    return bzr_inventory_data(tree), log 
240
238
 
241
239
def apply_revision(revdir, revision):
242
240
    tree = pybaz.tree_root(revdir)
243
241
    revision.apply(tree)
244
242
    log = tree.iter_logs(reverse=True).next()
245
 
    try:
246
 
        return bzr_inventory_data(tree), log
247
 
    except BadFileKind, e:
248
 
        raise UserError("Cannot convert %s because %s is a %s" % (revision,e.path, e.kind) )
249
 
 
250
 
 
251
 
 
252
 
 
253
 
class BadFileKind(Exception):
254
 
    """The file kind is not permitted in bzr inventories"""
255
 
    def __init__(self, tree_root, path, kind):
256
 
        self.tree_root = tree_root
257
 
        self.path = path
258
 
        self.kind = kind
259
 
        Exception.__init__(self, "File %s is of forbidden type %s" %
260
 
                           (os.path.join(tree_root, path), kind))
 
243
    return bzr_inventory_data(tree), log 
 
244
 
261
245
 
262
246
def bzr_inventory_data(tree):
263
247
    inv_iter = tree.iter_inventory_ids(source=True, both=True)
267
251
 
268
252
    bzr_inv = []
269
253
    for path, file_id in inv_map.iteritems():
270
 
        full_path = os.path.join(tree, path)
271
 
        kind = bzrlib.osutils.file_kind(full_path)
272
 
        if kind not in ("file", "directory"):
273
 
            raise BadFileKind(tree, path, kind)
 
254
        kind = bzrlib.osutils.file_kind(os.path.join(tree, path))
 
255
        assert kind in ("file", "directory")
274
256
        parent_dir = os.path.dirname(path)
275
257
        if parent_dir != "":
276
258
            parent_id = inv_map[parent_dir]