I'm starting to re-implement "unshelve" using the new WC editor API. Here's
what "unshelve" looks like now:
for each node-change found by shelf_status_walk(shelf-storage):
if it's "delete": call svn_wc_delete4(path,...)
if it's "modify": wc_file_merge(path,...)
etc.
What I'll want to do now is drive a WC-mods-editor with the changes found:
for each node-change found in shelf-storage:
drive wc_editor so as to "walk" from last visited path to this path
switch (mod-kind):
case "delete": call wc_editor->delete(...)
case "modify": call wc_editor->apply_textdelta(...)
etc.
I could write that code manually but it's a re-usable pattern. We already have
a walker that takes a static list of paths to visit:
svn_delta_path_driver2(editor, ... paths, ... callback)
We should have a similar walker that takes the paths to visit one at a time,
performing one "step" for each one. That would make writing this code easier.
I'll augment svn_delta_path_driver2() to support one-step-at-a-time walking.
--
- Julian