Following up on r1619121, refactor the property conflict marker generator code
to allow directly writing markers based on the information in wc.db.

Note that this doesn't update the only caller of this function, to specifically
test the legacy code path.

* subversion/libsvn_wc/props.c
  (prop_conflict_from_skel): Remove forward declaration.
  (append_prop_conflict): Remove. Folded in only caller.

  (prop_conflict_from_skel): Extract description creation into...
  (prop_conflict_new): ... this new function, which is now called by...
  (prop_conflict_from_skel): ... this wrapper with the old name.

  (svn_wc__create_prejfile): Rename argument and allow passing NULL for the
    property data.

* subversion/libsvn_wc/props.h
  (svn_wc__create_prejfile): Rename argument. Document.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619129 13f79535-47bb-0310-9956-ffa450edef68
Following up on r1619121 and r1619129, stop creating legacy property conflict
marker skels in the workqueue, by using the new direct DB option of the marker
write code added in r1619129.

* subversion/libsvn_wc/workqueue.c
  (prop_conflict_skel_new,
   prepend_prop_value,
   prop_conflict_skel_add): Remove function.
  (run_prej_install): Just pass a NULL property marker skel to
    svn_wc__create_prejfile instead of creating a legacy skel here.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619130 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/svn_test_main.c
  (log_results): Properly handle SVN_ERR_TEST_SKIPPED for XFail tests.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619143 13f79535-47bb-0310-9956-ffa450edef68
Following up on r1619143, resolve the same problem for when not running
the tests in parallel by removing some duplicated code.

* subversion/tests/svn_test_main.c
  (do_test_num): Following up on r1619143, remove skip error logic here
    that is duplicated in log_results() which we call a few lines below.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619146 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/svn_test_main.c
  (test_thread): Explicitly set err to NULL, as it might be kept from
    the previous test ran from te same loop.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619152 13f79535-47bb-0310-9956-ffa450edef68
Following up on r1619105, tweak the situations when we would like to skip
the new revprop_caching_on_off() test and its expected outcome.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
  (ignore_fs_warnings): New.
  (revprop_caching_on_off): Tweak the conditions under which we want to skip
    this test — now we execute it unconditionally for all FSFS filesystems.
    With non-efficient or unsupported atomics, the filesystem would print a
    warning, so handle it non-abortively.  Making assumptions about this
    test XFail-ing with both svn_named_atomic__is_efficient() and
    svn_named_atomic__is_supported() hugely relies on the internal
    implementation details, and there is nothing good with that.  So we ...
  (test_funcs): ...mark this test as WIMP instead of an XFAIL and tell the
    readers when it does fail.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619153 13f79535-47bb-0310-9956-ffa450edef68
Teach the test driver to pass a specific FSFS version number to the test
cases. This doesn't actually do anything at the moment, but the idea is
to, at some point, make the test cases use pre-cooked repositories that
were created by older released versiond of Subversion.

* build/run_tests.py
  (TestHarness.__init__): Parse the FSFS version from the fs-type argument.
  (TestHarness._run_c_test,
   TestHarness._run_py_test): Pass the FSFS version to the test case.

* subversion/tests/cmdline/svntest/main.py
  (_create_parser): Accept a new int parameter, --fsfs-version.
* subversion/tests/svn_test_main.c
  (test_options_e): Add new enum constant, fsfs_version_opt.
  (cl_options): Declare a new option, --fsfs-version.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619320 13f79535-47bb-0310-9956-ffa450edef68
Follow up to r1619320: Commit missing files.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619321 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1619122, unbreak the Python bindings.

* subversion/bindings/swig/svn_wc.i
  (svn_wc_conflict_description2_t): Ignore from SWIG binding wrapping.

Patch by: Alexey Neyman <stilor{_at_}att.net>


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619338 13f79535-47bb-0310-9956-ffa450edef68
swig-py: Remove the obviously busted svn_string_t memberin tyemap.

This typemap can't work with the swig-py bindings becuase _global_pool is not
a global variable like in the other bindings.  We'd need to use _global_py_pool
or ideally handle a passed in pool.  You can see an example patch that should
add this functionality here: http://svn.haxx.se/dev/archive-2014-08/0244.shtml

I'm removing this typemap rather than commiting the above because we don't
actually have a struct with svn_string_t members that we wrap in the Python
bindings.  Recent changes to svn_wc_conflict_description2_t creates one but
the svn_wc_conflict_resolver_func2_t isn't wrapped to make it useful anyway.
So that was added to the ignore list in r1619338.

* subversion/bindings/swig/include/svn_string.swg
  (svn_string_t): Remove the memberin typemap.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619345 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_wc/tree_conflicts.c
  (node_kind_map): Add yet another ### comment: svn_node_symlink isn't mapped.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619349 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_read_pristine_props): Fix the awful doc string.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619357 13f79535-47bb-0310-9956-ffa450edef68
Make the use of memcmp safe for fs_fs__id_t.  For that, all bytes of
the struct must have a well-defined contents.  The structs must to
be allocated by apr_pcalloc or duplicated bytewise.

* subversion/libsvn_fs_fs/id.c
  (svn_fs_fs__id_copy): To copy IDs, use APR's duplication function
                        instead of non-zeroing allocation + assignment.

Found by: kotkov                        

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619358 13f79535-47bb-0310-9956-ffa450edef68
* subversion/include/private/svn_diff_tree.h
  Add some comments querying the meaning of the existing comments.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619369 13f79535-47bb-0310-9956-ffa450edef68
Fix a bug whereby a local (WC) diff showed all the properties of a locally
copied dir as "added" inatead of showing a diff against the copied-from dir.

* subversion/libsvn_wc/diff_editor.c
  (svn_wc__diff_local_only_dir): Correctly pass through the copy-from info
    for a locally copied dir.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619380 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_wc/diff_local.c
  Correct the filename in the top-of-file comment.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619382 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/cmdline/diff_tests.py
  (diff_local_copied_dir): New test, for the fix in r1619380.
  (test_list): Run it.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619393 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/cmdline/svnadmin_tests.py
  (freeze_same_uuid): We no longer have checked named atomics, so skip this
   test with older server versions because it will hang otherwise.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619395 13f79535-47bb-0310-9956-ffa450edef68
Teach our cmdline tests to use a pre-cooked FSFSv6 repository
created by a 1.8 svnadmin.

* subversion/tests/cmdline/svntest/main.py
  (create_repos): If the FSFS version option is set, find and use an
   appropriate empty template repository instead of creating one
   using the current svnadmin binary.
  (fs_has_unique_freeze): New predicate.

* subversion/tests/cmdline/svnadmin_tests.py
  (freeze_same_uuid): Use the new predicate; the test now covers BDB as well.

* subversion/tests/templates/empty-fsfs-v6.zip: New;
   zipped empty repository created by svnadmin 1.8.10 on a Mac.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1619399 13f79535-47bb-0310-9956-ffa450edef68
Make the svnadmin tests succed with FS_TYPE=fsfs-v6.

* subversion/tests/cmdline/svntest/main.py
  (tests_use_prepacakaged_repository): New predicate.
* subversion/tests/cmdline/svnadmin_tests.py
  (create_in_repo_subdir): Skip if the new predicate applies.
  (load_ignore_dates): Ignore r0, its properties aren't affected by the
   'svnadmin load' anyway.


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