Checkout
glasser
committed
on 26 Nov 07
Reinstate svn_depth_exclude (removed in r27958), but only in the
"server" side. Specifically, completely disable it at the
command-line (wh… Show more
Reinstate svn_depth_exclude (removed in r27958), but only in the

"server" side.  Specifically, completely disable it at the

command-line (which should have been done before r27958), and document

it as not being supported in the wc or client libs in 1.5, but make

the (relatively straightforward) changes to the repos reporter to

enable 1.5 servers to support svn_depth_exclude arguments to

"set_path".

Because this can't be tested by the "svn" client, add a libsvn_repos

unit test to test it.

* subversion/include/svn_types.h

 (svn_depth_t): Add svn_depth_exclude as -1 again; document (in a

  private comment) that it is only supported on the server in 1.5.

* subversion/libsvn_subr/kitchensink.c

 (svn_depth_to_word, svn_depth_from_word): Support "exclude" again

  (as before r27958).

* subversion/libsvn_repos/reporter.c

 (Theory of operation, read_path_info, write_path_info): Let

  svn_depth_exclude be serialized in the reporter file (shifting each

  depth value up one value).

 (delta_dirs): Don't do the "delete" logic for excluded paths.  Don't

  call update_entry for excluded paths.

* subversion/include/svn_repos.h

 (svn_repos_set_path3): Document that the revision argument may be

  SVN_INVALID_REVNUM when depth=exclude.

* subversion/svn/main.c

 (main): Don't allow --depth=exclude on the command line.

* subversion/tests/libsvn_repos/repos-test.c

 (reporter_depth_exclude): New test.

 (test_funcs): It passes.

Show less