~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

  • Committer: John Arbash Meinel
  • Date: 2009-02-23 15:29:35 UTC
  • mfrom: (3943.7.7 bzr.code_style_cleanup)
  • mto: This revision was merged to the branch mainline in revision 4033.
  • Revision ID: john@arbash-meinel.com-20090223152935-oel9m92mwcc6nb4h
Merge the removal of all trailing whitespace, and resolve conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
166
166
    @needs_tree_write_lock
167
167
    def add_reference(self, sub_tree):
168
168
        # use standard implementation, which calls back to self._add
169
 
        # 
 
169
        #
170
170
        # So we don't store the reference_revision in the working dirstate,
171
 
        # it's just recorded at the moment of commit. 
 
171
        # it's just recorded at the moment of commit.
172
172
        self._add_reference(sub_tree)
173
173
 
174
174
    def break_lock(self):
287
287
 
288
288
    def _generate_inventory(self):
289
289
        """Create and set self.inventory from the dirstate object.
290
 
        
 
290
 
291
291
        This is relatively expensive: we have to walk the entire dirstate.
292
292
        Ideally we would not, and can deprecate this function.
293
293
        """
363
363
        If either file_id or path is supplied, it is used as the key to lookup.
364
364
        If both are supplied, the fastest lookup is used, and an error is
365
365
        raised if they do not both point at the same row.
366
 
        
 
366
 
367
367
        :param file_id: An optional unicode file_id to be looked up.
368
368
        :param path: An optional unicode path to be looked up.
369
369
        :return: The dirstate row tuple for path/file_id, or (None, None)
425
425
    @needs_read_lock
426
426
    def get_parent_ids(self):
427
427
        """See Tree.get_parent_ids.
428
 
        
 
428
 
429
429
        This implementation requests the ids list from the dirstate file.
430
430
        """
431
431
        return self.current_dirstate().get_parent_ids()
953
953
                raise errors.PathsNotVersionedError(paths)
954
954
        # -- remove redundancy in supplied paths to prevent over-scanning --
955
955
        search_paths = osutils.minimum_path_selection(paths)
956
 
        # sketch: 
 
956
        # sketch:
957
957
        # for all search_indexs in each path at or under each element of
958
958
        # search_paths, if the detail is relocated: add the id, and add the
959
959
        # relocated path as one to search if its not searched already. If the
1015
1015
 
1016
1016
    def read_working_inventory(self):
1017
1017
        """Read the working inventory.
1018
 
        
 
1018
 
1019
1019
        This is a meaningless operation for dirstate, but we obey it anyhow.
1020
1020
        """
1021
1021
        return self.inventory
1052
1052
    @needs_tree_write_lock
1053
1053
    def set_parent_ids(self, revision_ids, allow_leftmost_as_ghost=False):
1054
1054
        """Set the parent ids to revision_ids.
1055
 
        
 
1055
 
1056
1056
        See also set_parent_trees. This api will try to retrieve the tree data
1057
1057
        for each element of revision_ids from the trees repository. If you have
1058
1058
        tree data already available, it is more efficient to use
1289
1289
    This differs from WorkingTree3 by:
1290
1290
     - Having a consolidated internal dirstate, stored in a
1291
1291
       randomly-accessible sorted file on disk.
1292
 
     - Not having a regular inventory attribute.  One can be synthesized 
 
1292
     - Not having a regular inventory attribute.  One can be synthesized
1293
1293
       on demand but this is expensive and should be avoided.
1294
1294
 
1295
1295
    This is new in bzr 0.15.
1401
1401
 
1402
1402
    def _init_custom_control_files(self, wt):
1403
1403
        """Subclasses with custom control files should override this method.
1404
 
        
 
1404
 
1405
1405
        The working tree and control files are locked for writing when this
1406
1406
        method is called.
1407
 
        
 
1407
 
1408
1408
        :param wt: the WorkingTree object
1409
1409
        """
1410
1410
 
1556
1556
        If either file_id or path is supplied, it is used as the key to lookup.
1557
1557
        If both are supplied, the fastest lookup is used, and an error is
1558
1558
        raised if they do not both point at the same row.
1559
 
        
 
1559
 
1560
1560
        :param file_id: An optional unicode file_id to be looked up.
1561
1561
        :param path: An optional unicode path to be looked up.
1562
1562
        :return: The dirstate row tuple for path/file_id, or (None, None)
1808
1808
 
1809
1809
    def walkdirs(self, prefix=""):
1810
1810
        # TODO: jam 20070215 This is the lazy way by using the RevisionTree
1811
 
        # implementation based on an inventory.  
 
1811
        # implementation based on an inventory.
1812
1812
        # This should be cleaned up to use the much faster Dirstate code
1813
1813
        # So for now, we just build up the parent inventory, and extract
1814
1814
        # it the same way RevisionTree does.
1843
1843
 
1844
1844
class InterDirStateTree(InterTree):
1845
1845
    """Fast path optimiser for changes_from with dirstate trees.
1846
 
    
1847
 
    This is used only when both trees are in the dirstate working file, and 
1848
 
    the source is any parent within the dirstate, and the destination is 
 
1846
 
 
1847
    This is used only when both trees are in the dirstate working file, and
 
1848
    the source is any parent within the dirstate, and the destination is
1849
1849
    the current working tree of the same dirstate.
1850
1850
    """
1851
1851
    # this could be generalized to allow comparisons between any trees in the
2004
2004
        # the source revid must be in the target dirstate
2005
2005
        if not (source._revision_id == NULL_REVISION or
2006
2006
            source._revision_id in target.get_parent_ids()):
2007
 
            # TODO: what about ghosts? it may well need to 
 
2007
            # TODO: what about ghosts? it may well need to
2008
2008
            # check for them explicitly.
2009
2009
            return False
2010
2010
        return True
2020
2020
 
2021
2021
    def convert(self, tree):
2022
2022
        # lock the control files not the tree, so that we dont get tree
2023
 
        # on-unlock behaviours, and so that noone else diddles with the 
 
2023
        # on-unlock behaviours, and so that noone else diddles with the
2024
2024
        # tree during upgrade.
2025
2025
        tree._control_files.lock_write()
2026
2026
        try:
2065
2065
 
2066
2066
    def convert(self, tree):
2067
2067
        # lock the control files not the tree, so that we don't get tree
2068
 
        # on-unlock behaviours, and so that no-one else diddles with the 
 
2068
        # on-unlock behaviours, and so that no-one else diddles with the
2069
2069
        # tree during upgrade.
2070
2070
        tree._control_files.lock_write()
2071
2071
        try: