Things to be Done
=================

- Add a feature where an initial directory structure can be specified

- Do profiling on summary.py

- Lose the awkward iterator interface to Trees and Branches.  Since we
  frequently want to mutate the tree while going through the files, we
  usually consume the iterator anyways

- Track down bugs:

  1. From dirstate (filed as 455696).  Currently trapping this exception
     in the move routine and ignoring it.

::

    ------------------------------------------------------------
    Traceback (most recent call last):
      File "<ipython console>", line 1, in <module>
      File "evolve.py", line 50, in evolve
        tree = transition.step(tree)
      File "transition.py", line 32, in step
        tree = mutator.mutate(tree)
      File "mutators.py", line 238, in mutate
        _move(f, choice(directories))
      File "mutators.py", line 232, in _move
        input_tree.move(fromfile, to_path)
      File "bzrtreebranch.py", line 201, in move
        self._tree.rename_one(path, destination)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 52, in tree_write_locked
        return unbound(self, *args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 1245, in rename_one
        WorkingTree.rename_one(self, from_rel, to_rel, after)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 52, in tree_write_locked
        return unbound(self, *args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/workingtree.py", line 1535, in rename_one
        self._write_inventory(inv)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 52, in tree_write_locked
        return unbound(self, *args, **kwargs)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 1270, in _write_inventory
        self.current_dirstate().set_state_from_inventory(inv)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/dirstate.py", line 2629, in set_state_from_inventory
        fullscan=True)
      File "/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/bzrlib/dirstate.py", line 2797, in update_minimal
        other_key = list(existing_keys)[0]
    IndexError: list index out of range

