On 11/28/2011 05:34 PM, Hyrum K Wright wrote:
> In working on the Ev2 shims, I discovered svn_delta_path_driver(), a
> nifty little API whose purpose I haven't totally yet discerned. It
> looks to be some kind of hybridization of the editor, allowing a
> caller to handle some portion of the editor drive manually, though the
> documentation has enough ifs, buts, and wherefores to make me a bit
> unsure.
I created svn_delta_path_driver() for those situations where we have a set
of paths to be modified, the full set of which we know in advance -- we
aren't discovering them via an editor-compatible-deep-crawl that's easy to
hook directly up to an editor, for example. It's primary value is that it
does the work of figuring out which open_dir/close_dir pairs to fire off for
intermediate directories (which generally *aren't* in that set of
paths-to-be-changed), allowing it callback to act *only* on the "really
changed" paths.
The foremost uses which come to mind are client commits (which *do* perform
a WC crawl, but flatten out the list of modified things long before using
them to drive the commit editor) and anything that's driving an editor from
the repository's "fs-paths-changed" output hash.
> If I am correct, however, it would appear that this API is not
> compatible with our current editor shims, which queue up all changes
> made in an editor, and then play them back through the new shim.
>
> Any illumination by folks knowing more than I would be appreciated.
I'd have to know more about the new editor to make a value judgment here.
But I can probably help you grok the ..._path_driver() if need it.
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2011-11-29 13:25:30 CET