On the issue-2843-dev branch:

Tune the expected_output so that we only expect report on root when folding a
subtree.

* subversion/tests/cmdlind/depth_tests.py
  (depth_folding_clean_trees_2, depth_fold_expand_clean_trees,
  fold_tree_with_unversioned_modified_items): Tune expected_output.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871434 13f79535-47bb-0310-9956-ffa450edef68
On the in-memory-cache branch:

Don't try to cache fulltexts that are bigger than about a megabyte
(since they may go over the memcached maximum).  Size calculated by
some examination of memcached source and some experimentation (at
least on the build I have, 1048518 bytes seems to be the maximum value
size).

* subversion/libsvn_fs_fs/fs_fs.c
  (fulltext_size_is_cacheable): New.
  (read_representation): Check size before doing cache stuff.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/in-memory-cache@871436 13f79535-47bb-0310-9956-ffa450edef68
Merge from trunk to in-memory-cache.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/in-memory-cache@871437 13f79535-47bb-0310-9956-ffa450edef68
Extend 'checkout_test-7'('forced_checkout_with_versioned_obstruction')
to cover few more cases and fix one of the expecations.

For versioned obstruction should be left undisturbed when it corresponds to
some other url.

* subversion/tests/cmdline/checkout_tests.py
  (forced_checkout_with_versioned_obstruction): Fix the expected error
   when the checkout hits a obstructed foreign repository.
   Make sure 'other_wc_dir/A' is undisturbed by the checkout from
   different url on other_wc_dir.

Reviewed by: julianfoad


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871438 13f79535-47bb-0310-9956-ffa450edef68
Fix a problem that could cause a checkout to fail, leaving broken data in
the WC. This is now detected in checkout_tests-7.

* subversion/libsvn_wc/update_editor.c
  (add_directory): For versioned obstruction
   check whether obstruction corresponds to the same corresponding-URL 
   as the current update drive. If it points to some other URL error out
   saying so, else do tree-conflict detection.

Review by: julianfoad


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871439 13f79535-47bb-0310-9956-ffa450edef68
Work on the tree-conflict test suite.

* subversion/tests/cmdline/tree_conflict_tests.py
  General: Change the scenario tuples from (path, change-actions, obstructions)
    to (init-actions, change-actions), creating the path automatically from
    change-actions and getting rid of the "obstructions" field which was never
    yet used.
  (ensure_tree_conflict): After the conflict has been raised, add a check that
    an attempt to commit will fail. Then mark the conflict as resolved (though
    this doesn't completely succeed, as more than one conflict is currently
    raised by some scenarios).
  (test_list): Mark the two failing tests "Skip"/"XFail" so that this file of
    tests passes overall.

* subversion/tests/cmdline/tree_conflict_tests.txt
  Update the description to reflect the change to the scenario tuple.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871446 13f79535-47bb-0310-9956-ffa450edef68
On the in-memory-cache branch:

Followup to r31247, setting our cache error handler on the fulltext
cache as well.

* subversion/libsvn_fs_fs/caching.c
  (svn_fs_fs__initialize_caches): Move the dir_cache error handler
   setup back to under dir_cache's creation, and set up the error
   handler on fulltext_cache too.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/in-memory-cache@871450 13f79535-47bb-0310-9956-ffa450edef68
On the in-memory-cache branch:

In r30430, I added a trivial FS "warning" (really error) handler to
svnserve.  Since then, the svnserve-logging branch got merged to trunk
and then to this branch, which added a handler that actually did
something.  So remove the old one.

* subversion/svnserve/serve.c
  (handle_fs_warnings): Remove.
  (find_repos): Don't call svn_fs_set_warning_func here (it's called
   in serve later).


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/in-memory-cache@871451 13f79535-47bb-0310-9956-ffa450edef68
Merge from trunk to in-memory-cache, perhaps for the last time.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/in-memory-cache@871452 13f79535-47bb-0310-9956-ffa450edef68
Edits for clarity. No significant functional change.

* subversion/tests/cmdline/tree_conflict_tests.py
  General: Rename some functions and variables for clarity.
  (ensure_tree_conflict): During each sub-test, "chdir" into the WC to
    the paths passed around internally. Improve the display of exceptions
    occurring during a sub-test.
  (test_list): Change test 8 from Skip to XFail because we do want it to work,
    eventually.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871462 13f79535-47bb-0310-9956-ffa450edef68
On the fs-rep-sharing branch:
Bring up-to-date with trunk.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/fs-rep-sharing@871485 13f79535-47bb-0310-9956-ffa450edef68
On the issue-2843-dev branch:
Remove the protective check against cropping the wc.

* subversion/libsvn_wc/update_editor.c
  (make_editor): Remove the protective check.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871567 13f79535-47bb-0310-9956-ffa450edef68
On the tree-conflicts branch, merge outstanding changes from trunk.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871572 13f79535-47bb-0310-9956-ffa450edef68
In the tree-conflict tests, implement testing of merges where the target
branch has committed changes. This causes one more test (test number 10)
to fail, so mark that as XFail like the others.

* tree_conflict_tests.py
  (set_up_repos): Take an extra argument giving the branch directory in which
    to work, separately from the path to the WC root. Return the revision
    numbers of the initial state and the changed state, so that callers can
    find the relevant change in the repository.
  (ensure_tree_conflict): Take an extra parameter requesting the local mods
    to be committed to the target branch, and re-work the function to support
    this.
  (test_tc_up_sw): Adjust calls accordingly.
  (test_tc_merge): Make use of the above to also test merges where the local
    mods are first committed to the target branch.
  (test_list): Make test 10 XFail as it fails on this new variety of merge.

* tree_conflict_tests.txt
  Adjust accordingly. Also remove details of current test failures, rather
  than updating them.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871583 13f79535-47bb-0310-9956-ffa450edef68
Move the code that generates human-readable and XML descriptions of tree
conflicts up from libsvn_wc to the client, as libsvn_wc need not know how
this information should be presented to the users.

* subversion/include/svn_wc.h
  (svn_wc_conflicted_p2): Add some to-do comments and questions to the doc
    string.
  (svn_wc_append_human_readable_tree_conflict_description,
   svn_wc_append_tree_conflict_info_xml):
    Move to subversion/svn/tree-conflicts.h, changing the prefix svn_wc_ to
    svn_cl__.

* subversion/libsvn_wc/tree_conflicts.c
  (tree_conflict_phrases, new_tree_conflict_phrases,
   select_their_phrase, select_our_phrase,
   svn_wc_append_human_readable_tree_conflict_description,
   svn_wc_append_tree_conflict_info_xml):
    Move to subversion/svn/tree-conflicts.c, changing the prefix svn_wc_ to
    svn_cl__.

* subversion/svn/info-cmd.c
  (print_info_xml, print_info): Adjust calls to use the new prefix svn_cl__.

* subversion/svn/tree-conflicts.c,
  subversion/svn/tree-conflicts.h
  New files with content moved out of libsvn_wc.
  (svn_cl__append_tree_conflict_info_xml): Tweak to hard-code the XML element
  and attribute names ("dir", "file", "merge", "deleted", etc.) instead of
  using the words defined to be used in the WC entries file format.

* subversion/tests/libsvn_wc/tree-conflict-human-readable-test.c
  Delete this file, as human-readable descriptions are no longer in libsvn_wc.
  (I don't feel it's worth transferring these tests to the replacement
  functions.)

* build.conf
  (tree-conflict-human-readable-test): Delete this test.



git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871585 13f79535-47bb-0310-9956-ffa450edef68
On the issue-2843-dev branch:

Initial implementation of the cropping logic. 
No notification is generated yet.

* subversion/libsvn_wc/crop.c: New file.
  (svn_wc_crop_tree): New public function.
  (crop_children): New internal helper.

* subversion/include/svn_wc.h
  (svn_wc_crop_tree): New function.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871627 13f79535-47bb-0310-9956-ffa450edef68
Fix compiler warning of 
"implicit declaration of function `svn_cl__append_tree_conflict_info_xml'
 and 'svn_cl__append_human_readable_tree_conflict_description'".

* subversion/svn/info-cmd.c
  (): include tree-conflicts.h


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/tree-conflicts@871630 13f79535-47bb-0310-9956-ffa450edef68
On the issue-2843-dev branch:

Generate notifications in the cropping logic. And actually invoke the cropping
logic in the update logic. Preliminary debug has made the cropping logic work
to some degree. However, many tests fail unexpectedly. Further debugging is
needed.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree, crop_children): Generate notifications. Some adm_access
    related tunning to make it work. And some other bugs fixed.

* subversion/libsvn_client/update.c
  (svn_client__update_internal): Lock enough depth and call
    svn_wc_crop_tree().


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871643 13f79535-47bb-0310-9956-ffa450edef68
On the issue-2843-dev branch:

Fix a bug introduced in r31493.

* subversion/libsvn_wc/update_editor.c
  (make_editor): Don't wrap the update editor if the depth is sticky.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871646 13f79535-47bb-0310-9956-ffa450edef68
On the issue-2843-dev branch:

Fixes bugs in both the cropping logic and the test cases. 
Two test cases have been passed. 

Known problems:
1. The notification logic is not perfect yet, still leave the last
   test case as XFail(), even though it seems to have been passed. 

2. If the target itself is also cropped, the update logic will bring
   it back later. Should we handle cropping AFTER update?

* subversion/libsvn_wc/crop.c
  (crop_children): Do not return too early.

* subversion/tests/cmdline/depth_tests.py
  (depth_folding_clean_tree_1, 
    depth_fold_expand_clean_tree): Fix malformed expected_* informations.
  (depth_folding_clean_tree_2): Same. Also fill in the missed --set-depth
    option.
  (fold_tree_with_unversioned_modified_items): Same as the first. Also tune
    the expected output.
  (test_list): depth_folding_clean_tree_1 and depth_fold_expand_clean_tree are
    no longer XFail.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-2843-dev@871647 13f79535-47bb-0310-9956-ffa450edef68