You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Chia-liang Kao <cl...@clkao.org> on 2003/08/02 01:10:37 UTC

[PATCH] diff/merge -r N:M URL over ra_rav performance

forgot the message body itself, here it is :)

log message:

Make svn diff/merge -r N:M retrieve N as fulltext and M as delta
over ra_dav. This saves the bandwidth and speeds up 30-50%
depending on change size and network speed.

* libsvn_ra_dav/fetch.c:
  (svn_ra_dav__do_*): pass in new reporter baton field
  "always_delta".
  (custom_get_request): take computed delta_base.
  (simple_fetch_file): take baserev, generate delta_base
  url if baserev is valid, otherwise use get_delta_base.
  (svn_ra_dav__get_file): adjust parameter for 
  custom_get_request.
  (start_element): 
    (ELEM_open_directory): store baserev in current dir_item.
    (ELEM_fetch_file): call simple_fetch_file with baserev
    if always_delta is set.
  (end_element: ELEM_add_file): adjust parameter for
  simple_fetch_file.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] diff/merge -r N:M URL over ra_rav performance

Posted by Chia-liang Kao <cl...@clkao.org>.
heh, Thanks for the quick summary.

after some more looking at the repos_diff_editor and ra_dav,
turned out vsn_url _are_ passed to the diff editor via
change_dir_prop. so in open_file, we actually already have
that information in pb's propchange. but it's just hard to
pass it around cleanly to make ra's get_wc_prop aware of it.

Cheers,
CLK

On Sat, Aug 02, 2003 at 12:06:38PM -0500, Ben Collins-Sussman wrote:
> Chia-liang and I had a chat about this in IRC.  I told him that his
> patch would be instantly rejected, because libsvn_ra_dav isn't allowed
> to artifically construct version-resource-urls.  That's a major
> violation of DeltaV.
> 
> Instead, I suggested a new strategy: have the repos-diff-editor use
> the first RA session to fetch a fulltext (RA->get_file(), and also
> capture the VR-URL property that comes back.  Then make that VR-URL
> available to the 2nd RA session via a get-wc-prop callback.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] diff/merge -r N:M URL over ra_rav performance

Posted by Ben Collins-Sussman <su...@collab.net>.
Chia-liang Kao <cl...@clkao.org> writes:

> Make svn diff/merge -r N:M retrieve N as fulltext and M as delta
> over ra_dav. This saves the bandwidth and speeds up 30-50%
> depending on change size and network speed.
> 
> * libsvn_ra_dav/fetch.c:
>   (svn_ra_dav__do_*): pass in new reporter baton field
>   "always_delta".
>   (custom_get_request): take computed delta_base.
>   (simple_fetch_file): take baserev, generate delta_base
>   url if baserev is valid, otherwise use get_delta_base.
>   (svn_ra_dav__get_file): adjust parameter for 
>   custom_get_request.
>   (start_element): 
>     (ELEM_open_directory): store baserev in current dir_item.
>     (ELEM_fetch_file): call simple_fetch_file with baserev
>     if always_delta is set.
>   (end_element: ELEM_add_file): adjust parameter for
>   simple_fetch_file.

Chia-liang and I had a chat about this in IRC.  I told him that his
patch would be instantly rejected, because libsvn_ra_dav isn't allowed
to artifically construct version-resource-urls.  That's a major
violation of DeltaV.

Instead, I suggested a new strategy: have the repos-diff-editor use
the first RA session to fetch a fulltext (RA->get_file(), and also
capture the VR-URL property that comes back.  Then make that VR-URL
available to the 2nd RA session via a get-wc-prop callback.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org