Comment 1 for bug 109993

Revision history for this message
John A Meinel (jameinel) wrote :

Confirmed.
The dirstate file itself seems to have recorded this correctly (It shows that x was renamed to M, and that M with the old file id was deleted.

If you switch the removed file, it "works".

bzr init foo
cd foo
touch M x
bzr add
bzr commit -m 1
rm x
bzr rm x
bzr mv M x
bzr status

Will properly show M => x and x removed.

I think the problem is that _iter_changes is finding that x is renamed, and then looking up the record for M, and finding the deleted one, rather than the proper target.

And I *think* that is because the file-id "x-foobabrabou" is sorting after "M-aboeunthoeu", so whether we find the existing file, or the deleted one switches based on original filename (which effects file id).