Here is a method to communicate moves over an svn_delta_editor_t edit drive.

It requires modifying the sender and the receiver but uses the existing editor protocol. It requires a small amount of extra communication -- the list of moves -- which may be communicated out of band or carried inside the edit drive (for example, as properties that the consumer recognizes as special).

The aim is for a move-aware producer to be able to drive a move-unaware consumer and vice-versa.

It assumes:

This method can probably be adapted to other editors such as svn_wc_diff_callbacks_t.

Basic Method

Example

Starting from:

/
+-- A/
    +--foo

Rename 'A' to 'B':

/
+-- B/
    +-- foo

Where the copy and the delete are in the same directory, so our present edit producers send the 'del' before the 'copy'.

Old sequence (assuming del before cp):

New sequence (assuming del before cp):

MoveDev/MovesOverDeltaEditor (last edited 2013-05-30 13:32:40 by JulianFoad)