Remove some invalid documentation of completely unused defines. Too bad
we can't just remove them... Just mark them deprecated.

* subversion/include/svn_client.h
  (SVN_CLIENT_AUTH_USERNAME,
   SVN_CLIENT_AUTH_PASSWORD):
     Deprecate two defines from the original cvs code, which were
     unused since the introduction of the generic auh handling in 2003.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624010 13f79535-47bb-0310-9956-ffa450edef68
Fix a broken assumption within the r1603605 changeset.

When format 1 and 2 filesystems are being upgraded, the upgrade routine
leaves the db/current contents as is.  As a consequence, there is a window
when a filesystem has a new format, but the 'current' file still contains the
additional IDs left from an old format, i.e. it could look like "359 j5 v\n"
(last values are bogus and won't be there after the next transaction commit).
We should be able to parse it, otherwise any upgraded pre-1.4-compatible
repository will block the commits.

Loosen the corresponding checks.

* subversion/libsvn_fs_fs/util.c
  (svn_fs_fs__read_current): Do not be too strict for new filesystem formats
   and only expect a parseable revision number.  Adjust a scope of the local
   variable.

* subversion/tests/cmdline/svnadmin_tests.py
  (upgrade): New regression test.
  (test_list): Reference the new test.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624011 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_fs_fs/cached_data.c
* subversion/libsvn_fs_fs/index.c
* subversion/libsvn_fs_fs/pack.c
* subversion/libsvn_fs_fs/transaction.c
* subversion/libsvn_fs_x/cached_data.c
* subversion/libsvn_fs_x/index.c
* subversion/libsvn_fs_x/pack.c
* subversion/libsvn_fs_x/transaction.c
* subversion/libsvn_subr/io.c
* subversion/tests/libsvn_subr/io-test.c
  (block_read, stream_error_create, copy_item_to_temp, copy_rep_to_temp,
   copy_node_to_temp, store_item, pack_range): Use portable APR_SET, 
   APR_CUR and APR_END constants instead of SEEK_SET, SEEK_CUR and SEEK_END.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624265 13f79535-47bb-0310-9956-ffa450edef68
* subversion/include/svn_io.h
  (svn_stream_lazyopen_create): Document the result pool semantics.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624337 13f79535-47bb-0310-9956-ffa450edef68
* tools/dev/unix-build/Makefile.svn: Update bb-openbsd buildbot to HTTPD 2.2.29.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624351 13f79535-47bb-0310-9956-ffa450edef68
Add SVN_FS_CONFIG_FSFS_SHARD_SIZE fs config option to create FSFS
repositories with custom shard size. Use it in FSFS tests for now.

* subversion/include/svn_fs.h
  (SVN_FS_CONFIG_FSFS_SHARD_SIZE): New.

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__create): Handle SVN_FS_CONFIG_FSFS_SHARD_SIZE fs config option.

* subversion/tests/svn_test_fs.h
  (svn_test__create_fs2): New function declaration.

* subversion/tests/svn_test_fs.c
  (create_fs): Add OVERLAY_FS_CONFIG argument to overlay standard test
   fs config values.
  (svn_test__create_fs2): Revv from svn_test__create_fs(). Pass FS_CONFIG to
   create_fs() function.
  (svn_test__create_fs): Call svn_test__create_fs2() with OVERLAY_FS_CONFIG
   set to NULL.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
  (write_format): Remove.
  (create_packed_filesystem): Use svn_test__create_fs2() with a custom
   SVN_FS_CONFIG_FSFS_SHARD_SIZE fs config value instead of rewriting 
   format file.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624512 13f79535-47bb-0310-9956-ffa450edef68
Improve the documentation of 'A +' item state in 'svn help status'.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Explicitly state that 'A +' items are "copies",
   instead of describing them only as "addition with history" (these
   terms are interchangeable but add-with-history might not be intuitive
   to novice users).

Found by: drecute on #svn IRC


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624530 13f79535-47bb-0310-9956-ffa450edef68
* configure.ac: Remove SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK, a
   followup to r1506554.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1624532 13f79535-47bb-0310-9956-ffa450edef68
Fix a crash in 'svnmucc --version' when extra arguments are given.

For example, 'svnmucc --version -q' crashed. For now, just ignore any extra
arguments. Ideally we should handle the 'version' and 'help' options more
like the way the other command-line programs do, validating all arguments
before executing the request.

* subversion/svnmucc/svnmucc.c
  (display_version): Don't pass an 'opt state' to the help function, as we
    have no corresponding command table to pass with it.
  (sub_main): Adjust the call.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625496 13f79535-47bb-0310-9956-ffa450edef68
Add regression test for issue #4519.

* subversion/tests/cmdline/externals_tests.py
  (switch_relative_externals): New function.
  (test_list): Add switch_relative_externals.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625500 13f79535-47bb-0310-9956-ffa450edef68
Make svnmucc's help message and option parsing a very little bit more similar
to that of the other command-line programs.

* subversion/svnmucc/svnmucc.c
  (usage): New function.
  (help): New name for old function 'usage'. Add 'and RA modules' to the
    description of '--version'.
  (sub_main): For an option parsing failure (unrecognized option) display a
    more 'friendly' error message by using the new 'usage' function. Don't
    execute the '--version' request until all options have been parsed, so
    unrecognized options (for example 'svnlook --version -q' currently) are
    reported even when appearing after the '--version' argument. Track the
    rename.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625507 13f79535-47bb-0310-9956-ffa450edef68
Delete unused header files.

This has been unused at least since Subversion 1.6, probably much longer.

* subversion/svn/client_errors.h
  subversion/svn-bench/client_errors.h
  Delete.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625508 13f79535-47bb-0310-9956-ffa450edef68
When a file externals contents and properties aren't updated during a switch,
but its url is... update the recorded information.

This resolves issues #4411 and #4519.

* subversion/libsvn_wc/externals.c
  (close_edit): Bump external registration if this didn't occur in close_file.

* subversion/tests/cmdline/externals_tests.py
  (switch_parent_relative_file_external,
   switch_relative_externals): Remove XFail markers.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625522 13f79535-47bb-0310-9956-ffa450edef68
For issue #4519, stop removing valid information from the EXTERNALS table
when calling 'svn upgrade'

* subversion/libsvn_client/upgrade.c
  (upgrade_externals_from_properties): New prototype.
  (svn_client_upgrade): Upgrade properly recorded wc-ng EXTERNALS directly. Only
    if there are none, try to upgrade from svn:externals. Extract this upgrade code
    to a separate function upgrade_externals_from_properties().
  (upgrade_externals_from_properties): New function.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625533 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_client/upgrade.c
  (upgrade_externals_from_properties): Remove doubled ';', which
    caused C89/C90 warnings in gcc and Visual C++.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625537 13f79535-47bb-0310-9956-ffa450edef68
Fix a big scalability problem in the implementation of svnpredumpfilter.py.

The script kept re-computing the set of additional include paths while
mining the log history for copied paths. Each re-computation involved
a full iteration of the set of copies accumulated so far, which made
the run time explode on large repositories.
Instead, we can gather all copies first, and then iterate them at once.

In my testing this change reduces the runtime of svnpredumpfilter.py on
a 64GB large dump file of the FreeBSD repository (up to r271458) from
several days(!) to 1.5 minutes.

* tools/server-side/svnpredumpfilter.py
  (svn_log_stream_get_dependencies): Run dt.handle_changes() once the log
   history has been fully scanned, not for each revision.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625674 13f79535-47bb-0310-9956-ffa450edef68
Improve regular expression matching order in svnpredumpfilter.py.

* tools/server-side/svnpredumpfilter.py
  (svn_log_stream_get_dependencies): Copies were unnecessarily matched against
   two REs instead of one. Try the copies RE before the general changes RE.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625693 13f79535-47bb-0310-9956-ffa450edef68
In svnpredumpfilter.py, store copies as a set of tuples instead of as a dict.

* tools/server-side/svnpredumpfilter.py
  (handle_changes): Iterate the set.
  (svn_log_stream_get_dependencies): Create path_copies a set and use the
   set's add() method to add copy-tuples.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1625709 13f79535-47bb-0310-9956-ffa450edef68
* tools/server-side/svnpredumpfilter.py
  (sanitize_path): Use string.startswith() to match the path
   against a prefix, rather than string.find(prefix) == 0 which
   will try to locate the prefix at any position in the string.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1626181 13f79535-47bb-0310-9956-ffa450edef68
Make svnpredumpfilter.py detect copies of copies (of copies...)
and include them in the set of required paths.

* tools/server-side/svnpredumpfilter.py
  (DependencyTracker.__init__): Use sets instead of lists to store
   the sets of included paths and dependent paths.
  (DependencyTracker.path_incldued): Use union of sets instead of
   list concatenation.
  (DependencyTracker.handle_changes): Rename to ...
  (DependencyTracker.include_missing_copies): ... this, and repeatedly
   cross-check all included and dependent paths with all copies to find
   more dependent paths to add until no more relevant copies can be found.
  (svn_log_stream_get_dependencies): Handle rename of method.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1626182 13f79535-47bb-0310-9956-ffa450edef68