~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Martin Pool
  • Date: 2005-06-06 04:47:33 UTC
  • Revision ID: mbp@sourcefrog.net-20050606044733-e902b05ac1747cd2
- fix invocation of testbzr when giving explicit bzr location

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
except ImportError:
28
28
    from elementtree.ElementTree import Element, ElementTree, SubElement
29
29
 
30
 
from bzrlib.xml import XMLMixin
31
 
from bzrlib.errors import BzrError, BzrCheckError
 
30
from xml import XMLMixin
 
31
from errors import bailout, BzrError, BzrCheckError
32
32
 
33
33
import bzrlib
34
34
from bzrlib.osutils import uuid, quotefn, splitpath, joinpath, appendpath
68
68
    >>> i.add(InventoryEntry('2323', 'bye.c', 'file', '123'))
69
69
    Traceback (most recent call last):
70
70
    ...
71
 
    BzrError: inventory already contains entry with id {2323}
 
71
    BzrError: ('inventory already contains entry with id {2323}', [])
72
72
    >>> i.add(InventoryEntry('2324', 'bye.c', 'file', '123'))
73
73
    >>> i.add(InventoryEntry('2325', 'wibble', 'directory', '123'))
74
74
    >>> i.path2id('src/wibble')
411
411
        To add  a file to a branch ready to be committed, use Branch.add,
412
412
        which calls this."""
413
413
        if entry.file_id in self._byid:
414
 
            raise BzrError("inventory already contains entry with id {%s}" % entry.file_id)
 
414
            bailout("inventory already contains entry with id {%s}" % entry.file_id)
415
415
 
416
416
        try:
417
417
            parent = self._byid[entry.parent_id]
418
418
        except KeyError:
419
 
            raise BzrError("parent_id {%s} not in inventory" % entry.parent_id)
 
419
            bailout("parent_id {%s} not in inventory" % entry.parent_id)
420
420
 
421
421
        if parent.children.has_key(entry.name):
422
 
            raise BzrError("%s is already versioned" %
 
422
            bailout("%s is already versioned" %
423
423
                    appendpath(self.id2path(parent.file_id), entry.name))
424
424
 
425
425
        self._byid[entry.file_id] = entry
430
430
        """Add entry from a path.
431
431
 
432
432
        The immediate parent must already be versioned"""
433
 
        from bzrlib.errors import NotVersionedError
434
 
        
435
433
        parts = bzrlib.osutils.splitpath(relpath)
436
434
        if len(parts) == 0:
437
 
            raise BzrError("cannot re-add root of inventory")
 
435
            bailout("cannot re-add root of inventory")
438
436
 
439
437
        if file_id == None:
440
438
            file_id = bzrlib.branch.gen_file_id(relpath)
441
439
 
442
 
        parent_path = parts[:-1]
443
 
        parent_id = self.path2id(parent_path)
444
 
        if parent_id == None:
445
 
            raise NotVersionedError(parent_path)
446
 
 
 
440
        parent_id = self.path2id(parts[:-1])
 
441
        assert parent_id != None
447
442
        ie = InventoryEntry(file_id, parts[-1],
448
443
                            kind=kind, parent_id=parent_id)
449
444
        return self.add(ie)
549
544
            try:
550
545
                ie = self._byid[file_id]
551
546
            except KeyError:
552
 
                raise BzrError("file_id {%s} not found in inventory" % file_id)
 
547
                bailout("file_id {%s} not found in inventory" % file_id)
553
548
            p.insert(0, ie.file_id)
554
549
            file_id = ie.parent_id
555
550
        return p
609
604
 
610
605
        This does not move the working file."""
611
606
        if not is_valid_name(new_name):
612
 
            raise BzrError("not an acceptable filename: %r" % new_name)
 
607
            bailout("not an acceptable filename: %r" % new_name)
613
608
 
614
609
        new_parent = self._byid[new_parent_id]
615
610
        if new_name in new_parent.children:
616
 
            raise BzrError("%r already exists in %r" % (new_name, self.id2path(new_parent_id)))
 
611
            bailout("%r already exists in %r" % (new_name, self.id2path(new_parent_id)))
617
612
 
618
613
        new_parent_idpath = self.get_idpath(new_parent_id)
619
614
        if file_id in new_parent_idpath:
620
 
            raise BzrError("cannot move directory %r into a subdirectory of itself, %r"
 
615
            bailout("cannot move directory %r into a subdirectory of itself, %r"
621
616
                    % (self.id2path(file_id), self.id2path(new_parent_id)))
622
617
 
623
618
        file_ie = self._byid[file_id]