* Add utility method delta.get_changes_as_text to get the output of .show() as a string. * Add new errors.BzrRemoveChangedFilesError to raise when 'bzr remove' should refuse to delete stuff. * Add workingtree.canicalpath(filename) to normalize file names. * Changed the working of workingtree.remove(...) to check if any files are changed before it starts deleting anything. Will raise exception now if changed files are passed to be removed. * workingtree_implementations/test_remove.py - Checked all tests and add more cases.