[
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)