I recently reviewed all the remaining sparse directories stuff. The
quick summary:
For one programmer, it would be about 2-4 weeks of work. Luckily,
it's very parallelizeable, so as long as we coordinate, we can
systematically mop this stuff up. Also, some things can maybe be
deferred to after 1.5; not everything on the list is a showstopper.
The detailed version:
Here's a rundown on all the issues. (I'm currently finishing #2882
['make commit --depth work'], and intend to spend some parallel time
on #2846. I'll start on #2844 right after that, which overlaps with
some of the other issues.)
Please post if there's anything important not on this list:
* Issue #2845 "Tweak API's to handle svn_depth_unknown"
APIs in question: svn_client_diff4(), svn_client_diff_summarize2(),
svn_client_diff_summarize_peg2(), svn_client_diff_peg3()
In the issue just now, I wrote the following:
"I agree that ideally this change would be made. However, we should
test to see if diff behaves acceptably with combinations of depthy
working copies and the --depth option already. If it is, then this
issue can and should be deferred, as it is not an API issue in the
formal (compatibility) sense."
STATUS: 3/5 days, but maybe deferrable, see above.
* Issue #2882 "make 'svn commit --depth' work"
STATUS: 1/2 days (almost done, I'm working on it, issue reflects this)
* Issue #2843 "Create interface for removing stuff from working copy"
STATUS: Not started. How hard? Not sure, but minimum 3/5 days I
think. However, this may be deferrable from 1.5; it's not a
showstopper to ship without it, just less than ideal.
* Issue #2847 "Some API's still take recurse booleans instead of depth"
STATUS: Probably 2/3 days. But deferrable if absolutely necessary;
not all these APIs necessarily need to be changed in 1.5,
although it would be good to get as many as we can. (I have
said so in the issue.)
* Issue #2846 "Tests needed for some subcommands"
STATUS: 1/2 days? Senthil is already doing this, and asking for
others to review his plans. I'll do so, Senthil, sorry for
the delay (on an airplane and therefore offline yesterday).
* Issue #2842 "deal with unwanted data sent from older servers"
Only perf issues left (ra_serf could omit fetches of unwanted data).
STATUS: Nice to have, but could be deferred to after 1.5 if necessary.
(Said so in the issue just now.)
* Issue #2864 "Cannot commit directory deletions non-recursively"
STATUS: Deferrable. This may come out "in the wash" of sparse-dirs
changes anyway, but if it's still present, it can be
deferred -- it is an irritation, but not a 1.5 showstopper.
* Issue #2844 "Review all TODO(sd) comments in codebase"
STATUS: 5/10 days to handle all remaining, see details below. Note
that this issue overlaps with some of the ones above, naturally.
Here are details on all the "TODO(sd)" comments remaining after
r26390 and r26391. I've put this list into the issue, too.
HARD:
- svn_client_update3: depth-immediates should update the presence or
absence of subdirs. But does it?
- svn_client_switch2: depth-immediates behavior may not be
implemented yet. May be related to above.
- libsvn_client/commit.c/svn_client_commit4(): Issue #2882 in
progress. Note there are two comments here; the second is easy.
- libsvn_client/externals.c/svn_client__do_external_status(): Is
unconditional recursion of svn_client_status3() really
correct? Probably not, because then we might recurse farther
into an external subdir than the user requested.
MEDIUM:
- svn_wc_get_update_editor3: verify that doc string claims are true
- svn_wc_get_diff_editor4: figure out what doc string means, clarify
- svn_client_merge3: doc string clarification, also needs testing
MEDIUM BUT POSSIBLY DEFERRABLE:
- svn_client_add4: should take a depth argument.
See also svn_wc_add2() comment below.
- libsvn_wc/adm_ops.c/svn_wc_add2(): Just acknowledging above.
- svn_client_import3: maybe take depth instead of nonrecursive?
- svn_client_revert: maybe take depth? Also, has someone started
this already?
- svn_client_resolved2: maybe take depth?
- svn_client_propset3: maybe take depth?
- svn_client_propget3: maybe take depth? (Very likely deferrable?)
- svn_client_info: maybe take depth? (Also likely deferrable?)
### I'd hoped that the above svn_client_revert(),
### svn_client_resolved2(), svn_client_propset3(),
### svn_client_propget3(), and svn_client_info() would all
### share a generic recursion framework. It turns out that
### only resolved2, propset3, and propget3 share one, though:
### the svn_wc_walk_entries3() mechanism. But adding depth
### support to that will probably still save some some time
### and code duplication, at least for them.
- libsvn_client/diff.c:diff_repos_repos(): Hmm, do we even implement
depth for repos->repos diffs? It would be nice if we did, but
this may be deferrable.
- libsvn_client/diff.c:diff_summarize_repos_repos(): same as above
EASY:
- svn_repos_dir_delta2: doc string
- svn_wc_adm_open3: doc string and var name change
- svn_wc_crawl_revisions2: doc string
- svn_ra_do_update2: just test that depth works as documented.
- svn_ra_do_switch2: same.
- svn_ra_do_status2: same.
- svn_ra_do_diff3: same.
- libsvn_wc/diff.c:make_editor_baton(): document
- libsvn_wc/status.c:close_directory(): verify that it can't happen
### Do right after this.
- libsvn_ra_neon/fetch.c:make_reporter(): doc string
EASY AND POSSIBLY DEFERRABLE:
- svn_client_diff4: in depth-immediates case, diff subdir props?
MYSTERIOUS:
- libsvn_repos/delta.c:delta_dirs(): Three identical comments about
possible future need for trinary conditional. Ask on list
about this.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 30 18:14:19 2007