/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/dirstate.py

  • Committer: John Arbash Meinel
  • Date: 2010-01-12 20:51:58 UTC
  • mto: (4634.119.5 2.0)
  • mto: This revision was merged to the branch mainline in revision 4959.
  • Revision ID: john@arbash-meinel.com-20100112205158-ka4r62tpmtf3aglg
Fix a bug in the dirstate logic for 'set_path_id'.

It was a bit tricky to sort out, because it depends on the sort order
of sets. Basically 'set_path_id' was accidentally adding the old
file-id a a location to get the entry for the new file-id.
And then the _get_entry lookup would see that the entry was
absent in the given tree (because it doesn't validate that the
file-id for the entry line actually matches the file-id supplied).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
1997
1997
                entry_index, present = self._find_entry_index(key, block)
1998
1998
                if present:
1999
1999
                    entry = self._dirblocks[block_index][1][entry_index]
 
2000
                    # TODO: We might want to assert that entry[0][2] ==
 
2001
                    #       fileid_utf8.
2000
2002
                    if entry[1][tree_index][0] in 'fdlt':
2001
2003
                        # this is the result we are looking for: the
2002
2004
                        # real home of this file_id in this tree.
2354
2356
        self.update_minimal(('', '', new_id), 'd',
2355
2357
            path_utf8='', packed_stat=entry[1][0][4])
2356
2358
        self._dirblock_state = DirState.IN_MEMORY_MODIFIED
2357
 
        if self._id_index is not None:
2358
 
            self._id_index.setdefault(new_id, set()).add(entry[0])
2359
2359
 
2360
2360
    def set_parent_trees(self, trees, ghosts):
2361
2361
        """Set the parent trees for the dirstate.