~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Robert Collins
  • Date: 2005-10-18 13:11:57 UTC
  • mfrom: (1185.16.72) (0.2.1)
  • Revision ID: robertc@robertcollins.net-20051018131157-76a9970aa78e927e
Merged Martin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
 
17
# FIXME: This refactoring of the workingtree code doesn't seem to keep 
 
18
# the WorkingTree's copy of the inventory in sync with the branch.  The
 
19
# branch modifies its working inventory when it does a commit to make
 
20
# missing files permanently removed.
17
21
 
18
22
# TODO: Maybe also keep the full path of the entry, and the children?
19
23
# But those depend on its position within a particular inventory, and
31
35
import types
32
36
 
33
37
import bzrlib
34
 
from bzrlib.errors import BzrError, BzrCheckError
35
 
 
36
38
from bzrlib.osutils import (pumpfile, quotefn, splitpath, joinpath,
37
39
                            appendpath, sha_strings)
38
40
from bzrlib.trace import mutter
39
 
from bzrlib.errors import NotVersionedError
 
41
from bzrlib.errors import (NotVersionedError, InvalidEntryName,
 
42
                           BzrError, BzrCheckError)
40
43
 
41
44
 
42
45
class InventoryEntry(object):
229
232
        '123'
230
233
        >>> e = InventoryFile('123', 'src/hello.c', ROOT_ID)
231
234
        Traceback (most recent call last):
232
 
        BzrCheckError: InventoryEntry name 'src/hello.c' is invalid
 
235
        InvalidEntryName: Invalid entry name: src/hello.c
233
236
        """
234
237
        assert isinstance(name, basestring), name
235
238
        if '/' in name or '\\' in name:
236
 
            raise BzrCheckError('InventoryEntry name %r is invalid' % name)
237
 
        
 
239
            raise InvalidEntryName(name=name)
238
240
        self.executable = False
239
241
        self.revision = None
240
242
        self.text_sha1 = None
885
887
        parent_path = parts[:-1]
886
888
        parent_id = self.path2id(parent_path)
887
889
        if parent_id == None:
888
 
            raise NotVersionedError(parent_path)
889
 
 
 
890
            raise NotVersionedError(path=parent_path)
890
891
        if kind == 'directory':
891
892
            ie = InventoryDirectory(file_id, parts[-1], parent_id)
892
893
        elif kind == 'file':