[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] making depth upgrades work (sparse-directories), v2

From: Vlad Georgescu <vgeorgescu_at_gmail.com>
Date: 2007-06-02 15:33:40 CEST

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

This is an archived mail posted to the Subversion Dev mailing list.