Ben Collins-Sussman wrote:
> On Jun 12, 2005, at 2:23 AM, Martin Hauner wrote:
>> Philip Martin wrote:
>>> [diff preview]
>>> In the short term I suppose a new svn_wc_diff_callbacks2_t will
>>> do, in the long term we might need a new RA function that tells us
>>> which things have changed without sending the details of the changes,
>>> i.e. no text-deltas (and maybe no property changes either).
> IIUC, 'svn merge' is now doing exactly this in svn 1.2.
> So in svn 1.2, cmpilato changed 'svn merge' to request one of our old-
> fashioned tree-delta reports, one which we used to call a "skelta".
> It's a tree-delta without any text-deltas, just a description of which
> files need to be fetched. 'svn merge' now quickly sucks the whole
> skelta into a tmpfile, then parses the skelta slowly, doing
> svn_ra_get_file()'s as needed.
> So it sounds like we don't need a new RA function here at all, do we?
> 'svn merge' is already doing this very thing, so it must be already
Yes, it can be done without a new ra function.
I created a new api function svn_client_diff_preview with a callback
function svn_diff_preview_func_t. It uses a simple svn_delta_editor_t
implementation as input to svn_ra_do_diff. So no new ra function.
The delta editor creates svn_diff_preview_t structures with the
requested information and then calls the callback with the created
info structure when close_file or close_directory gets called.
It is still unfinished, it only does repos/repos preview and it doesn't
handle properties so far. Since i started with copying the diff code
(there is a lot of necessary preparation) there is also some work to
extract the common code between diff and diff_preview.
Apart from that it already works quite nice from subcommander :-)
If anyone is interested i can post an unfinished patch for review.
a cross platform Win32/Unix/MacOSX subversion gui client & diff/merge tool.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Sat Jun 18 17:25:57 2005