Differences between revisions 3 and 4
Revision 3 as of 2013-05-30 12:34:07
Size: 1169
Editor: JulianFoad
Comment:
Revision 4 as of 2013-06-04 15:25:59
Size: 1639
Editor: JulianFoad
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
API changes needed to support rename tracking. API changes needed to support move tracking.
Line 6: Line 6:
=== Tree Diff / Editor API ===
==== svn_editor_t ====
== Tree Diff / Editor APIs ==
==== svn_editor_t (Ev2) ====
 * This has 'move' operations designed in, but I haven't yet tried to validate and use them.
Line 10: Line 12:
 * This is a path-based editor, and a path-based solution is needed.
 * Method:
  * Modify the producer and consumer but not the protocol, keeping back-compat.
  * Send src & dest paths with 'del' and 'copy' methods when part of a move.
Line 12: Line 18:
 * This is a path-based editor.
Line 13: Line 21:
=== Client to server ===  * This is a path-based editor.

==== svn_ra_reporter_t ====
 * This is a path-based editor.

== Client to server ==
Line 31: Line 44:
=== Server to client === == Server to client ==

API changes needed to support move tracking.

(Early draft)

Tree Diff / Editor APIs

svn_editor_t (Ev2)

  • This has 'move' operations designed in, but I haven't yet tried to validate and use them.

svn_delta_editor_t

  • See MoveDev/MovesOverDeltaEditor

  • This is a path-based editor, and a path-based solution is needed.
  • Method:
    • Modify the producer and consumer but not the protocol, keeping back-compat.
    • Send src & dest paths with 'del' and 'copy' methods when part of a move.

svn_tree_processor_t

  • This is a path-based editor.

svn_wc_diff_callbacksN_t

  • This is a path-based editor.

svn_ra_reporter_t

  • This is a path-based editor.

Client to server

Client lib

  • 'move URL URL' sends 'move'
  • 'commit' sends 'move'

RA layer

  • 'copy' method recognizes 'move' (src-rev = -1).

Repos

  • 'copy' method recognizes 'move' (src-rev = -1).

FS

  • Add a 'move' method.

FSFS

  • Add a 'move' method, that keeps copy-id the same.
  • 'changes' list - record as a 'move'?

Server to client

Repos

  • report -> delta

  • replay
  • delta-dirs

svnadmin

  • 'upgrade' enables move-specific metadata
  • 'upgrade' creates move-specific metadata by heuristics
  • 'dump'/'load' writes & reads move-specific metadata (?)

svnlook

  • 'diff' recognizes renames

RA layer

Client lib

  • 'update' and 'switch' recognize 'move'.
  • 'merge' recognizes 'move'.

MoveDev/ApiChangesForMove (last edited 2013-06-04 15:25:59 by JulianFoad)