* subversion/svnserve/serve.c
  (unlock_many): Initialise variable in case unlock returns zero tokens.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1608451 13f79535-47bb-0310-9956-ffa450edef68
In ra-serf, don't declare xml attributes which are never used in the dav
protocol.

* subversion/libsvn_ra_serf/update.c
  (update_ttable): Don't define rev as valid property for add-file/-dir
    as they don't use this. Don't declare the unused bc-url for files, as
    it is only provided on dirs.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1608742 13f79535-47bb-0310-9956-ffa450edef68
Simplify a bit of logic. No functional changes.

* subversion/mod_dav_svn/reports/update.c
  (add_helper): Move bc_url string calculation to the directory case.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1608745 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_client/import.c
  (svn_client_import5): Pass valid pool in abort_edit() call.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1608816 13f79535-47bb-0310-9956-ffa450edef68
Do not run the C tests when testing ra_svn or ra_serf.

* build/run_tests.py
  (TestHarness.__init__): Check if we're using the file:// protocol.
  (TestHarness.run): Filter the C tests out of the test list if we're not
   testing ra_local.
  (TestHarness._split_nums): New; code hoisted out of TestHarness._run_test.
  (TestHarness._run_test): Use TestHarness._split_nums.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1609477 13f79535-47bb-0310-9956-ffa450edef68
Fix fallout from r1609477.

* build/run_tests.py
  (TestHarness.__init__): Don't assume that the base URL is set.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1609484 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1609477: Make skipping the C tests optional for any RA method.

* Makefile.in (check): Interpret the SKIP_C_TESTS option.
* build/run_tests.py
  (TestHarness.__init__): Accept a new optional parameter skip_c_tests
   and initialize the object attribute from it.
  (main): Add new options --skip-c-tests and synonym --skip-C-tests.
   Defaults to false; pass the value to the TestHarness constructor.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1609489 13f79535-47bb-0310-9956-ffa450edef68
Move the setting of SVN_AUTH_PARAM_SERVER_GROUP from libsvn_ra_serf
to libsvn_ra so that it applies to all RA layers.  This fixes issue
4512: config server groups should work with the svn:// protocol.

* subversion/libsvn_ra/ra_loader.c
  (svn_ra_open4): Set SVN_AUTH_PARAM_SERVER_GROUP.

* subversion/libsvn_ra_serf/serf.c
  (load_config): No need to find group or set SVN_AUTH_PARAM_SERVER_GROUP.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1609499 13f79535-47bb-0310-9956-ffa450edef68
Add the benchmark script and utilities used for repository performance
testing to our dev tools section.  Most of them are Windows-sepecifc.

* tools/dev/benchmarks/RepoPerf
  New folder.

* tools/dev/benchmarks/RepoPerf/ClearMemory.cpp
  (): New file.  Trivial "RAM cleaner" for Windows.

* tools/dev/benchmarks/RepoPerf/copy_repo.py
  (): New file.  Generic tool to multiply repositories and to create
      realistic on-disk data layouts.

* tools/dev/benchmarks/RepoPerf/TimeWin.cpp
  (): New file.  Windows tool measuring execution time and CPU usage
      of a given command while suppressing its output.

* tools/dev/benchmarks/RepoPerf/win_repo_bench.py
  (): New file.  The benchmarking script I used on Windows.  It is
      currently quite inflexible (paths etc. are hard-coded).

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1610264 13f79535-47bb-0310-9956-ffa450edef68
Make files within the .svn/pristine directory read-only.

Pristine paths are passed to externals tools, such as diff tools, and it is
possible that such tools allow users to edit these files. Pristines shouldn't
be changed so it seems like a good idea to make them read-only by default.

Pristine files are now made writable only while they're being installed
or removed.

* subversion/libsvn_wc/wc_db_pristine.c
  (pristine_install_txn): Make pristine files writable before installation
   (in case a partial or corrupt copy exists), and make them read-only
   after installation.
  (remove_file): Make pristine files writable before removing them.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611356 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1611356: Attempt to fix tree_conflict_tests 23 on Windows.

* subversion/tests/cmdline/tree_conflict_tests.py
  (actual_only_node_behaviour): If shutil.rmtree() fails to delete a path,
    try again after making the path writable.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611360 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1611356: No need to make pristine files writable for removal.

* subversion/libsvn_wc/wc_db_pristine.c
  (remove_file): svn_io_remove_file2() will remove read-only files, so there's
   no need for us to make pristines writable before removing them.

Suggested by: julianfoad


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611368 13f79535-47bb-0310-9956-ffa450edef68
Fix Windows redo loop oddity for named atomics.  As it turns out, the redo
loops for file creation and locking don't play very well with files that
get / got deleted.  This is the root cause for the bad ra_serf performance
when revprop caching has been enabled.

With this patch, we simply use the same lock file scheme as for e.g. lock
files in FSFS, i.e. we auto-create an empty lock file and keep it.

* subversion/libsvn_subr/named_atomic.c
  (mutex_t): Don't keep the lock file open while not holding the lock,
             i.e. the mutex is simply the file name and the pool that
             will contain the actual file lock.
  (lock): Auto-create and lock the file as we do in e.g. FSFS.
  (unlock): Simple pool cleanup now released the lock file.
  (delete_lock_file): Drop.
  (svn_atomic_namespace__create): Update mutex initialization code.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611379 13f79535-47bb-0310-9956-ffa450edef68
Work around for the poor performance of APR reader / writer locks on Windows.
Basically, fall back to 1.7 code on Win32 by using a simple mutex.

This resulted in a 35% increase in throughput for a 'null-export' over
ra_serf from hot SVN caches with revprop caching enabled.  OTOH, this may
cost us some scalability with ra_svn on high-speed (>1Gb) networks.

* subversion/libsvn_subr/cache-membuffer.c
  (USE_SIMPLE_MUTEX): New flag.  Set depending on whether we need to fall
                      back to a simple locking scheme.
  (svn_membuffer_t): Select lock type at compile time.
  (read_lock_cache,
   write_lock_cache,
   force_write_lock_cache,
   unlock_cache): Use the simple mutex lock when selected.
  (svn_cache__membuffer_cache_create): Initialize the correct lock type and
                                       disable the counter_mutex if redundant.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611380 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1611380: fix build.

* subversion/libsvn_subr/cache-membuffer.c
  (read_lock_cache): Add missing #endif.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611381 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/cmdline/svnadmin_tests.py
  (set_changed_path_list): Remove obsolete comment. No functional change.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611382 13f79535-47bb-0310-9956-ffa450edef68
* subversion/svn/notify.c
  (notify_body): Tweak comments for clarity.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611666 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/libsvn_repos/dump-load-test.c
  (test_dump_r0_mergeinfo): Fix typo in comment.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611675 13f79535-47bb-0310-9956-ffa450edef68
In 'svn propget', forbid using 'show-inherited-properties' with 'strict'.

The reason is because 'strict' (that is, print no newline afterwards) is
only really useful when there is no more than one value to output. This is
consistent with how we already forbid it when there are multiple targets or
a depth other than 'empty'.

See email thread "--strict vs --no-newline", started on 2014-06-09 by Julian
Foad, archived at e.g. <http://svn.haxx.se/dev/archive-2014-06/0023.shtml>.

* subversion/svn/propget-cmd.c
  (svn_cl__propget): Forbid 'strict' with 'show-inherited-properties'.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Update the help text accordingly.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1611698 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_subr/io.c
  (svn_io_open_unique_file3): On !win32, we should ignore EINCOMPLETE and
   ENOTIMPL when setting permissions on the temporary file, just like
   svn_io_copy_perms does. This usually means the underlying file system
   doesn't support permission bits in the first place.

Found by: Nick Chadwick


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