Karl Fogel wrote:
> In a sense, this is a step down from the previous patch I posted,
> because this breaks a lot more tests (clearly there's some major flaw
> in it). But in a larger sense it's progress, because it fixes more
> places where requested-depth is confused with reported-depth, and
> finds more of the important depth-sensitive spots in reporter.c.
>
> Obviously, this is not to be applied. I'm posting it because I don't
> want to be off in a corner coding for days without review (not just
> for coding errors, but for general approach).
>
Hi,
I finished implementing depth upgrades (with 1.5 servers) in the
attached patch. I can get the depth upgrade tests to work without
breaking anything else (tested over ra_svn and ra_local).
I'm posting it here for review.
[[[
Make depth upgrades work.
Patch by: me
kfogel
* subversion/libsvn_client/update.c
(svn_client__update_internal): Don't read the on-disk entry to
determine the depth for the update. Handle externals if depth is
svn_depth_unknown.
* subversion/libsvn_client/checkout.c
(svn_client__checkout_internal): Pass the requested depth to
svn_client__update_internal.
* subversion/libsvn_wc/adm_crawler.c
(svn_wc_crawl_revisions3): If depth is svn_depth_unknown, treat it
like svn_depth_infinity. Use the entry depth instead of the
requested depth for the top-level set-path. Don't call
report_revisions_and_depths if the requested depth is empty.
(report_revisions_and_depths): Report files when they are present in a
depth-empty wc, and directories when they are present in a
depth-empty or depth-files wc. Report subdirectories in a
depth-immediates dir.
* subversion/libsvn_wc/adm_ops.c
(tweak_entries): Convert svn_depth_unknown to svn_depth_infinity, and
handle depth correctly.
* subversion/libsvn_repos/reporter.c
(is_depth_upgrade): New.
(update_entry): Take both a wc_depth and a requested_depth instead of
a single depth, use them when calling delta_dirs().
(delta_dirs): Take both a wc_depth and a requested_depth instead of a
single depth, use them when iterating over the directory entries to
determine whether to send the whole entry or just deltas.
(drive): Update calls to update_entry and delta_dirs.
* subversion/tests/cmdline/depth_tests.py
(test_list): Remove XFail from depth_immediates_fill_in_dir,
depth_update_to_more_depth and depth_immediates_subdir_propset_1.
]]]
--
Vlad
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jun 2 15:33:59 2007