Reduce the default revprop pack file size to 4kByte.

This still gives us most of the advantage (typ. 10x reduction in file
count and wasted OS file system clusters, data mainly co-located on disk
due to the packing process itself) but significantly reduces pack file
header parsing overhead.

* subversion/libsvn_fs_fs/fs_fs.c
  (read_config): Reduce the defaults by a factor of 16.
  (write_config): Update the corresponding sections in the fsfs.conf
                  template.  Remove references to the revprop caching
                  feature as it is currently unavailable.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634872 13f79535-47bb-0310-9956-ffa450edef68
Speed up packed revprop access by tuning the manifest file parser.

The core loop of this accounted for approx. 40% of 'svn log -v' with
50M iterations/s.  Because the number of entries to parse is fixed
by the number of revisions in the shard, the only option here is to
rewrite that loop eliminating any overhead in it.

We put file size and contents guarantees in front of the loop.  Some
major contribution comes from the fact that (usually) all lines have
the same predictable length (the few that don't are slightly longer).
So, we can efficiently replace strchr().  Finally, we access source
and target buffers as plain C arrays.

* subversion/libsvn_fs_fs/revprops.c
  (get_min_filename_len): New utility function.
  (get_revprop_packname): Mainly rewrite.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634875 13f79535-47bb-0310-9956-ffa450edef68
Eliminate another 50% of the revprop file header parsing overhead.

Unless we want to modify the pack file, i.e. write a revprop, we are not
interested in anything but a single revision's revprops.  So, add an
READ_ALL flag to the parser and let the callers decide what they need.

* subversion/libsvn_fs_fs/revprops.c
  (parse_packed_revprops): Read the revprop location and size info only
                           if the READ_ALL flag is set. 
  (read_pack_revprop): Add READ_ALL parameter as a pass-through.
  (svn_fs_fs__get_revision_proplist): We only need one set of revprops
                                      and won't use the pack file contents
                                      for anything else.
  (write_packed_revprop): We need the full packed revprop info here.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634879 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_fs_fs/revprops.c
  (parse_packed_revprops): Remove revprop caching calls as it is
                           currently unavailable.
                   


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634880 13f79535-47bb-0310-9956-ffa450edef68
Fix minor constant declaration issue.

* subversion/libsvn_fs_fs/index.c
  (off_t_max): This one is supposed to be static.

Found by: breser

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634920 13f79535-47bb-0310-9956-ffa450edef68
Update the FSFS revprop pack tests to reflect the recent packing
granularity changes.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
  (get_set_large_revprop_packed_fs): Reduce the numbers by roughly 16
                                     to create the same file splitting
                                     effects as before.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634935 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_subr/cache-membuffer.c
  (entry_tag_t): Fix formatting and docstring. No functional change.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634936 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:  Record-only merge r1597414, r1598273, r1599140,
r1607085, r1612407, r1613339, r1618226, r1619068, r1624265, r1627948,
r1628083, r1628158, r1628676 and r1632646 from libsvn_fs_fs.

These revisions have already updated both backends.

* subversion/libsvn_fs_x
  (): Update mergeinfo.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634940 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Record-only merge r1619413 r1619769 and r1632926 from libsvn_fs_fs.

These revprop caching changes have been superseded by the new caching
code merged to FSX in r1632907.

* subversion/libsvn_fs_x
  (): Update mergeinfo.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634943 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Cleanly merge r1634875, 1634879 and 1634880 from libsvn_fs_fs.

This ports the latest revprop pack file parsing improvements to FSX.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634945 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to merge in r1632907: Make tests pass again for FSX.

* subversion/tests/cmdline/svnadmin_tests.py
  (check_hotcopy_fsfs_fsx): Since FSFS no longer uses any revprop caching
                            infrastructure, it is safe to read the generation
                            number unconditonally in the new-style format.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634950 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Record-only merge r1596567, r1597989 and r1600872 from libsvn_fs_fs.

These patches do not apply to FSX.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634954 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Merge r1601633, r1604720, r1604794, r1615356, r1628764 from libsvn_fs_fs
and resolve a few simple text conflicts caused by renamed functions.

These are various code simplifications as well as style and formatting
cleanups in tree.c.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634956 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Record-only merge r1603485 from libsvn_fs_fs and adapt it to FSX.

While the original change is not relevant to FSX, merging this
keeps the hotcopy.c code structure closer to FSFS.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634962 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Record-only merge r1603486 from libsvn_fs_fs.

There is no ID recovery in FSX.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1634963 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/svn_test_fs.c (svn_test__validate_tree):
   Fix typo in comment. No functional change.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1635074 13f79535-47bb-0310-9956-ffa450edef68
Like other commands where a peg revision is not meaningful, make 'svn
export' error out if there is any non-empty peg specifier on the target
path, rather than just ignoring it.

This fixes one more case that was missed in r1196005 and r1196050. Related
to issue #3416 <http://subversion.tigris.org/issues/show_bug.cgi?id=3416>
"Cannot add or commit 'dir/@file.txt'" and to issue #3651
<http://subversion.tigris.org/issues/show_bug.cgi?id=3651> "svn copy does
not eat peg revision within copy target path".

* subversion/svn/export-cmd.c
  (svn_cl__export): Reject any non-empty peg revision specifier on the target.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1635085 13f79535-47bb-0310-9956-ffa450edef68
* subversion/include/svn_wc.h
  (svn_wc_merge_prop_diffs): Fix typo in docstring. No functional change.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1635100 13f79535-47bb-0310-9956-ffa450edef68
Sync FSX with FSFS:
Merge and adapt revisions r1604188, r1604413, r1604442, r1604700, r1604726
r1604755 and r1604844 from libsvn_fs_fs.  Various conflicts were caused by
reordered code and renamed functions in FSX.

This ports memory / pool usage improvements in the parser and lower data
access layers.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1635101 13f79535-47bb-0310-9956-ffa450edef68
Don't reject command-line arguments of the form ".@abc", where "abc" is a
peg specifier that may be empty.

Since r878062, this form has been rejected with the error

  svn: E125001: '@abc' is just a peg revision. Maybe try '@abc@' instead?

apparently as an unintended side effect of rejecting the potentially
ambiguous form "@abc". The fix is to move the check up to a higher level
function.

* subversion/include/svn_client.h,
  subversion/libsvn_client/cmdline.c
  (svn_client_args_to_target_array2): Reject an argument of the form "@abc".
    At this point the argument has not yet been converted to internal style.
    Document that an argument of the form "@abc" is an error.

* subversion/include/private/svn_opt_private.h,
  subversion/libsvn_subr/opt.c
  (svn_opt__split_arg_at_peg_revision): Don't throw an error when the path
    portion of the target is empty.


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