Support path kind changing without delete and add pairs

Registered by Robert Collins

Every path in a tree has a kind - directory, file or symlink. Its possible for a user to change the kind of a path without doing a logical delete + add. I.e. they might change a file called 'doc' which was a symlink into a directory called 'doc'. Or a regular file might be turned into a symlink if its content was adsorbed into an existing file but they needed the path kept for compatability.

We should stop giving errors when these changes occur and instead record the actual tree correctly. We may need to increase our testing and or merging logic to accomodate corner cases we currently punt on which become possible with this in place.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Aaron Bentley
Definition:
Pending Approval
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
milestone icon 0.12
Started by
John A Meinel
Completed by
Aaron Bentley

Related branches

Sprints

Whiteboard

Aaron has implemented support for this in 'commit', but wants to unify change detection before implementing support in 'diff', 'status', etc.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.