/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

  • Committer: Andrew Bennetts
  • Date: 2007-10-12 05:26:46 UTC
  • mfrom: (2904 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2906.
  • Revision ID: andrew.bennetts@canonical.com-20071012052646-wl95idld3ijjy714
Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
158
158
        state = self.current_dirstate()
159
159
        for f, file_id, kind in zip(files, ids, kinds):
160
160
            f = f.strip('/')
161
 
            assert '//' not in f
162
 
            assert '..' not in f
163
161
            if self.path2id(f):
164
162
                # special case tree root handling.
165
163
                if f == '' and self.path2id(f) == ROOT_ID:
453
451
 
454
452
    def has_id(self, file_id):
455
453
        state = self.current_dirstate()
456
 
        file_id = osutils.safe_file_id(file_id)
457
454
        row, parents = self._get_entry(file_id=file_id)
458
455
        if row is None:
459
456
            return False
463
460
    @needs_read_lock
464
461
    def id2path(self, file_id):
465
462
        "Convert a file-id to a path."
466
 
        file_id = osutils.safe_file_id(file_id)
467
463
        state = self.current_dirstate()
468
464
        entry = self._get_entry(file_id=file_id)
469
465
        if entry == (None, None):
477
473
 
478
474
            Note: The caller is expected to take a read-lock before calling this.
479
475
            """
480
 
            file_id = osutils.safe_file_id(file_id)
481
476
            entry = self._get_entry(file_id=file_id, path=path)
482
477
            if entry == (None, None):
483
478
                return False
489
484
            Note: The caller is expected to take a read-lock before calling this.
490
485
            """
491
486
            if not path:
492
 
                file_id = osutils.safe_file_id(file_id)
493
487
                path = self.id2path(file_id)
494
488
            mode = os.lstat(self.abspath(path)).st_mode
495
489
            return bool(stat.S_ISREG(mode) and stat.S_IEXEC & mode)
1004
998
 
1005
999
        WorkingTree4 supplies revision_trees for any basis tree.
1006
1000
        """
1007
 
        revision_id = osutils.safe_revision_id(revision_id)
1008
1001
        dirstate = self.current_dirstate()
1009
1002
        parent_ids = dirstate.get_parent_ids()
1010
1003
        if revision_id not in parent_ids:
1017
1010
    @needs_tree_write_lock
1018
1011
    def set_last_revision(self, new_revision):
1019
1012
        """Change the last revision in the working tree."""
1020
 
        new_revision = osutils.safe_revision_id(new_revision)
1021
1013
        parents = self.get_parent_ids()
1022
1014
        if new_revision in (NULL_REVISION, None):
1023
1015
            assert len(parents) < 2, (
1041
1033
        :param revision_ids: The revision_ids to set as the parent ids of this
1042
1034
            working tree. Any of these may be ghosts.
1043
1035
        """
1044
 
        revision_ids = [osutils.safe_revision_id(r) for r in revision_ids]
1045
1036
        trees = []
1046
1037
        for revision_id in revision_ids:
1047
1038
            try:
1073
1064
        # convert absent trees to the null tree, which we convert back to
1074
1065
        # missing on access.
1075
1066
        for rev_id, tree in parents_list:
1076
 
            rev_id = osutils.safe_revision_id(rev_id)
1077
1067
            _mod_revision.check_not_reserved_id(rev_id)
1078
1068
            if tree is not None:
1079
1069
                real_trees.append((rev_id, tree))
1154
1144
            return
1155
1145
        state = self.current_dirstate()
1156
1146
        state._read_dirblocks_if_needed()
1157
 
        ids_to_unversion = set()
1158
 
        for file_id in file_ids:
1159
 
            ids_to_unversion.add(osutils.safe_file_id(file_id))
 
1147
        ids_to_unversion = set(file_ids)
1160
1148
        paths_to_unversion = set()
1161
1149
        # sketch:
1162
1150
        # check if the root is to be unversioned, if so, assert for now.
1269
1257
        These trees get an initial random root id, if their repository supports
1270
1258
        rich root data, TREE_ROOT otherwise.
1271
1259
        """
1272
 
        revision_id = osutils.safe_revision_id(revision_id)
1273
1260
        if not isinstance(a_bzrdir.transport, LocalTransport):
1274
1261
            raise errors.NotLocalUrl(a_bzrdir.transport.base)
1275
1262
        transport = a_bzrdir.get_workingtree_transport(self)
1341
1328
 
1342
1329
    def __init__(self, dirstate, revision_id, repository):
1343
1330
        self._dirstate = dirstate
1344
 
        self._revision_id = osutils.safe_revision_id(revision_id)
 
1331
        self._revision_id = revision_id
1345
1332
        self._repository = repository
1346
1333
        self._inventory = None
1347
1334
        self._locked = 0
1399
1386
        """
1400
1387
        if file_id is None and path is None:
1401
1388
            raise errors.BzrError('must supply file_id or path')
1402
 
        file_id = osutils.safe_file_id(file_id)
1403
1389
        if path is not None:
1404
1390
            path = path.encode('utf8')
1405
1391
        parent_index = self._get_parent_index()