add rename

This avoids creating the target directory if the old and new path are
identical.

required for js-git data integrity fix I'm about to push.