[ 
https://issues.apache.org/jira/browse/SVN-4892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17506915#comment-17506915
 ] 

Julian Foad commented on SVN-4892:
----------------------------------

The patch I sent is now committed in r1898948 as a new branch,
[​'pristines-on-demand-on-issue4892'|https://svn.apache.org/repos/asf/subversion/branches/pristines-on-demand-issue4892],
 for easier dev/test access. Log message:

{code:none}
New branch 'pristines-on-demand-on-issue4892': update fetches minimal pristines.

Branched from 'pristines-on-demand-on-mwf'. This commit, as well as
branching, applies the proof-of-concept patch sent to dev@ thread "Issue
#525/#4892: on only fetching the pristines we really need".

This is a proof-of-concept patch, enabling "update" to fetch minimal
pristines, using a deeper callback to fetch them at the point of use.

Currently, "restore" functionality of the update is disabled. A similar
approach could enable it to fetch at point of use as well. Currently it
being disabled leads to the following test suite failures:

  FAIL:  basic_tests.py 1: basic checkout of a wc
  FAIL:  copy_tests.py 20: copy over a missing file
  FAIL:  relocate_tests.py 1: relocate with deleted, missing and copied entries
  FAIL:  stat_tests.py 13: timestamp behaviour
  FAIL:  update_tests.py 6: delete files and update to resolve text conflicts
  FAIL:  update_tests.py 9: update missing items (by name) in working copy
  FAIL:  update_tests.py 14: update missing dir to rev in which it is absent
  FAIL:  update_tests.py 15: another "hudson" problem: updates that delete
  FAIL:  upgrade_tests.py 24: test upgrading a working copy with missing subdir
  FAIL:  upgrade_tests.py 27: upgrade with missing replaced dir

This patch leads to one additional test failure:

  FAIL:  externals_tests.py 68: check file external recorded info

* subversion/include/private/svn_wc_private.h
  (svn_wc__textbase_hydrate_cb_t): Moved to earlier.
  (svn_wc__get_update_editor): Add a hydrate callback.
  (svn_wc__crawl_revisions6): New, bumped... ### see below.

* subversion/libsvn_client/client.h,
  subversion/libsvn_client/textbase.c
  (svn_client__textbase_get_hydrator): New.

* subversion/libsvn_client/switch.c
  (svn_client__switch_internal): ### hydrate before conflicts resolver

* subversion/libsvn_client/update.c
  (update_internal): 
  (svn_client__update_internal): Don't hydrate everything at the start.
    Pass a hydrate callback down to the WC update operation. 
    ### TODO/TO-CHECK: Also hydrate before conflicts resolver.

* subversion/libsvn_wc/adm_crawler.c
  (maybe_restore_node): ### TEMPORARY: don't restore.
  (svn_wc_crawl_revisions5): Bump to ...6(), adding a hydrate callback.
    ### TODO: use the callback for "restore".

* subversion/libsvn_wc/deprecated.c
  (svn_wc_get_update_editor4): Pass null for hydrate callback.

* subversion/libsvn_wc/update_editor.c
  (lazy_open_source): Use a hydrate callback to hydrate if pristine is
    missing.
  (edit_baton,
   make_editor,
   svn_wc__get_update_editor,
   svn_wc__get_switch_editor): Pass a hydrate callback through.

* subversion/libsvn_wc/wc_db.h,
  subversion/libsvn_wc/wc_db_textbase.c
  (svn_wc__db_textbase_hydrate): Newly public; renamed ...
  (textbase_hydrate): ... from this.
  (svn_wc__db_textbase_sync): Track the rename.
{code}

> Pristines-on-demand: update must not fetch pristines it doesn't need
> --------------------------------------------------------------------
>
>                 Key: SVN-4892
>                 URL: https://issues.apache.org/jira/browse/SVN-4892
>             Project: Subversion
>          Issue Type: Bug
>            Reporter: Julian Foad
>            Assignee: Julian Foad
>            Priority: Major
>
> Discussing in dev@ thread "A two-part vision for Subversion and large binary 
> objects."



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to