~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Robert Collins
  • Date: 2005-10-17 23:13:00 UTC
  • mto: This revision was merged to the branch mainline in revision 1462.
  • Revision ID: robertc@robertcollins.net-20051017231300-e1c9e931bcfacd6a
Branch.open_containing now returns a tuple (Branch, relative-path).

This allows direct access to the common case of 'get me this file
from its branch'. (Robert Collins)

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.
21
17
 
22
18
# TODO: Maybe also keep the full path of the entry, and the children?
23
19
# But those depend on its position within a particular inventory, and
35
31
import types
36
32
 
37
33
import bzrlib
 
34
from bzrlib.errors import BzrError, BzrCheckError
 
35
 
38
36
from bzrlib.osutils import (pumpfile, quotefn, splitpath, joinpath,
39
37
                            appendpath, sha_strings)
40
38
from bzrlib.trace import mutter
41
 
from bzrlib.errors import (NotVersionedError, InvalidEntryName,
42
 
                           BzrError, BzrCheckError)
 
39
from bzrlib.errors import NotVersionedError
43
40
 
44
41
 
45
42
class InventoryEntry(object):
232
229
        '123'
233
230
        >>> e = InventoryFile('123', 'src/hello.c', ROOT_ID)
234
231
        Traceback (most recent call last):
235
 
        InvalidEntryName: Invalid entry name: src/hello.c
 
232
        BzrCheckError: InventoryEntry name 'src/hello.c' is invalid
236
233
        """
237
234
        assert isinstance(name, basestring), name
238
235
        if '/' in name or '\\' in name:
239
 
            raise InvalidEntryName(name=name)
 
236
            raise BzrCheckError('InventoryEntry name %r is invalid' % name)
 
237
        
240
238
        self.executable = False
241
239
        self.revision = None
242
240
        self.text_sha1 = None
887
885
        parent_path = parts[:-1]
888
886
        parent_id = self.path2id(parent_path)
889
887
        if parent_id == None:
890
 
            raise NotVersionedError(path=parent_path)
 
888
            raise NotVersionedError(parent_path)
 
889
 
891
890
        if kind == 'directory':
892
891
            ie = InventoryDirectory(file_id, parts[-1], parent_id)
893
892
        elif kind == 'file':