Fix a bug in svn_uri_is_canonical; it would begin path verification at
the beginning of the host name, and if the host name was "." would think
it found an invalid path segment.

* subversion/libsvn_subr/dirent_uri.c (svn_uri_is_canonical):
   Set the segment pointer to the beginning of the schema data before
   verifying same, otherwise it would point at the beginning of the
   host name.

* subversion/tests/libsvn_subr/dirent_uri-test.c (uri_canonical):
   Add a couple cases that tripped up the buggy svn_uri_is_canonical.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1516806 13f79535-47bb-0310-9956-ffa450edef68
Make some 'svn mkdir' code use absolute paths internally, to avoid path length
limits on Windows.

* subversion/libsvn_client/add.c
  (svn_client__make_local_parents): Document as taking absolute paths, and
    don't hide errors.
  (svn_client_mkdir4): Make dirents absolute before passing them to
    svn_client__make_local_parents.

* subversion/libsvn_client/client.h
  (svn_client__make_local_parents): Tweak prototype.

Found by: schabi


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1516816 13f79535-47bb-0310-9956-ffa450edef68
On Windows, make it possible to build Subversion against Serf 1.3.0 and
higher by allowing compilation against an already compiled serf.

* build/generator/gen_win_dependencies.py
  (_find_serf): Set is_src to False when version >= 1.3.0.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517192 13f79535-47bb-0310-9956-ffa450edef68
ra_serf: Remove DAV: headers from GET requests. This decrease outbound 
traffic during checkout/update by 45%.

* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__handler_t): Add NO_DAV_HEADERS member.

* subversion/libsvn_ra_serf/update.c
  (fetch_file, svn_ra_serf__get_file): Set NO_DAV_HEADERS=TRUE for GET 
   request.

* subversion/libsvn_ra_serf/util.c
  (setup_serf_req): Add DAV: request headers only if DAV_HEADERS parameter
   is non-zero.
  (setup_request): Pass ! NO_DAV_HEADERS to setup_serf_req() call.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517472 13f79535-47bb-0310-9956-ffa450edef68
On the fsfs-improvements branch: Sync with /trunk up to r1517472.
No conflicts.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/fsfs-improvements@1517474 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1517472.

* subversion/libsvn_ra_serf/util.c
  (setup_serf_req): Update comment.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517478 13f79535-47bb-0310-9956-ffa450edef68
Merged branches/fsfs-improvements into /trunk (clean merge).
Removed BRANCH-README.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517479 13f79535-47bb-0310-9956-ffa450edef68
Fix Ruby tests: Adapt to stricter TXN_ID checks.

* subversion/bindings/swig/ruby/test/test_fs.rb
  (test_transaction): distinuish between malformed and unknown TXN_IDs

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517532 13f79535-47bb-0310-9956-ffa450edef68
Following up on a suggestion by Ivan on @dev about a month ago.

This is an initial draft plus completely untested implementation
for an SVN file API.  Its implementation works around a few
inefficiencies and scalability issues with apr_file_t.  See the
header comments for details.

Tests will be added eventually and the code stabilized based on
the test results.  To prevent accidental use in current production
code, the new API is only available if you define #ENABLE_SVN_FILE
in your code.

* subversion/include/private/svn_file.h
  (): new file, declaring the svn_file_t API.

* subversion/libsvn_subr/file.c
  (): implement new API; missing documentation

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517733 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/cmdline/log_tests.py
  (log_xml_old): Skip for fsx since it doesn't allow pre-1.8 repositories.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1517779 13f79535-47bb-0310-9956-ffa450edef68
Factor out some of the error and pool handling in the main() functions of 
svnrdump as it was done for svn/svnadmin in r1368252.

* subversion/svnrdump/svnrdump.c
  (SVNRDUMP_ERR): Remove this macro.
  (EXIT_ERROR, SVN_INT_ERR): New macros, same as those defined in
   subversion/svn/svn.c, but for svnrdump.
  (submain): Extract most of main() into this new function. Use 
   SVN_INT_ERR and EXIT_ERROR to handle errors.
  (main): Extract everything except the initialization of the application
   and of the top-level pool, and the destruction of that pool, into the
   new function sub_main(), and call that.

Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518169 13f79535-47bb-0310-9956-ffa450edef68
* build/generator/gen_win_dependencies.py
  Resolve about a dozen test failures by defining a NUM2LL macro when building
  the swig ruby bindings to make sure swig doesn't redefine a macro in an
  invalid way.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518172 13f79535-47bb-0310-9956-ffa450edef68
Properly calculate subdirectory filesystem paths for file:/// urls where the
root of the repository points to the root of a Windows drive root.
(Resolves an of by one error for this specific case)

* subversion/libsvn_ra_local/split_url.c
  (svn_ra_local__split_URL): Fix 'clever' code that didn't cover a specific
    Windows corner case.

* subversion/tests/cmdline/checkout_tests.py
  (checkout_wc_from_drive): Extend testcase to cover two variants of this
    issue.

Found by: Andy Levy <andy.levy{_AT_}gmail.com>


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518184 13f79535-47bb-0310-9956-ffa450edef68
* subversion/bindings/javahl/native/CommitEditor.h
* subversion/bindings/javahl/native/EditorProxy.h
* subversion/bindings/javahl/native/Iterator.h
* subversion/bindings/javahl/native/LockTokenTable.h
* subversion/bindings/javahl/native/RemoteSession.h
* subversion/bindings/javahl/native/RemoteSessionContext.h
* subversion/bindings/javahl/native/RevisionRangeList.h
* subversion/bindings/javahl/native/StateReporter.h
* subversion/include/private/svn_file.h
* subversion/include/private/svn_packed_data.h
* subversion/libsvn_fs_fs/cached_data.c
* subversion/libsvn_fs_fs/cached_data.h
* subversion/libsvn_fs_fs/hotcopy.c
* subversion/libsvn_fs_fs/hotcopy.h
* subversion/libsvn_fs_fs/low_level.c
* subversion/libsvn_fs_fs/low_level.h
* subversion/libsvn_fs_fs/pack.c
* subversion/libsvn_fs_fs/pack.h
* subversion/libsvn_fs_fs/recovery.c
* subversion/libsvn_fs_fs/recovery.h
* subversion/libsvn_fs_fs/revprops.c
* subversion/libsvn_fs_fs/revprops.h
* subversion/libsvn_fs_fs/transaction.c
* subversion/libsvn_fs_fs/transaction.h
* subversion/libsvn_fs_fs/util.c
* subversion/libsvn_fs_fs/util.h
* subversion/libsvn_fs_fs/verify.c
* subversion/libsvn_fs_fs/verify.h
* subversion/libsvn_fs_x/cached_data.c
* subversion/libsvn_fs_x/cached_data.h
* subversion/libsvn_fs_x/changes.c
* subversion/libsvn_fs_x/changes.h
* subversion/libsvn_fs_x/hotcopy.c
* subversion/libsvn_fs_x/hotcopy.h
* subversion/libsvn_fs_x/index.c
* subversion/libsvn_fs_x/index.h
* subversion/libsvn_fs_x/low_level.h
* subversion/libsvn_fs_x/noderevs.c
* subversion/libsvn_fs_x/noderevs.h
* subversion/libsvn_fs_x/pack.c
* subversion/libsvn_fs_x/pack.h
* subversion/libsvn_fs_x/recovery.c
* subversion/libsvn_fs_x/recovery.h
* subversion/libsvn_fs_x/reps.c
* subversion/libsvn_fs_x/reps.h
* subversion/libsvn_fs_x/revprops.h
* subversion/libsvn_fs_x/string_table.c
* subversion/libsvn_fs_x/string_table.h
* subversion/libsvn_fs_x/transaction.c
* subversion/libsvn_fs_x/transaction.h
* subversion/libsvn_fs_x/util.h
* subversion/libsvn_ra_svn/deprecated.c
* subversion/libsvn_subr/compress.c
* subversion/libsvn_subr/file.c
* subversion/libsvn_subr/packed_data.c
* subversion/libsvn_subr/prefix_string.c
* subversion/libsvn_subr/utf8proc/utf8proc.c
* subversion/libsvn_subr/utf8proc/utf8proc.h
* subversion/libsvn_subr/utf8proc/utf8proc_data.c
* subversion/libsvn_subr/utf8proc.c
* subversion/tests/libsvn_fs_x/string-table-test.c
* subversion/tests/libsvn_subr/packed-data-test.c
* subversion/tests/libsvn_subr/prefix-string-test.c
* subversion/tests/libsvn_subr/priority-queue-test.c
  (svn:eol-style): Set to native.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518202 13f79535-47bb-0310-9956-ffa450edef68
* subversion/bindings/javahl/native/CommitEditor.cpp
* subversion/bindings/javahl/native/EditorProxy.cpp
* subversion/bindings/javahl/native/Iterator.cpp
* subversion/bindings/javahl/native/LockTokenTable.cpp
* subversion/bindings/javahl/native/RemoteSession.cpp
* subversion/bindings/javahl/native/RemoteSessionContext.cpp
* subversion/bindings/javahl/native/RevisionRangeList.cpp
* subversion/bindings/javahl/native/StateReporter.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_ConfigImpl_Category.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.cpp
* subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp
  (svn:eol-style): Set native.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518204 13f79535-47bb-0310-9956-ffa450edef68
Start svnserve as daemon from the swig-ruby tests on Windows.

This ugly hack (which could really use some cleanup from somebody with more
ruby interests than me), fixes +- 70 tests on the buildbot, by removing a
running as administrator requirement.

This hack assumes that the buildbot kills svnserve before the next build
(which happens to be the case on our Windows buildbots).

* subversion/bindings/swig/ruby/test/windows_util.rb
  (Svnserve): Replace one ugly hack that starts svnserve, with a different
    hack that at least works with reduced privileges.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518238 13f79535-47bb-0310-9956-ffa450edef68
* subversion/bindings/swig/ruby/test/windows_util.rb
  (Svnserve): Following up on r1518238, more cleanup. Use the svnserve we are
    testing instead of the one found on $PATH.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518270 13f79535-47bb-0310-9956-ffa450edef68
* build/generator/templates/build_locale.ezt
  (): Create the 'mo' directory only if it doesn't exist, to suppress
      a warning.

Patch by: Masaru Tsuchiyama <m.tmatma{_AT_}gmail.com>


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518290 13f79535-47bb-0310-9956-ffa450edef68
Updated JavaHL diff utilities to return useful values from the diff and merge
functions. Incidentally, attempted to fix the related tests on Windows.

[in subversion/bindings/javahl/src/org/apache/subversion/javahl]
* SVNUtil.java (SVNUtil.fileDiff): Return a boolean value indicating
   that there were differences between the files.
  (SVNUtil.fileMerge): Return a boolean value indicating that
   the merge produced conflicts.

* util/DiffLib.java
   (DiffLib.fileDiff, DiffLib.fileMerge,
    DiffLib.nativeFileDiff, DiffLib.nativeFileMerge):
    Same changes as above.

[in subversion/bindings/javahl/native]
* org_apache_subversion_javahl_util_DiffLib.cpp
  (Java_org_apache_subversion_javahl_util_DiffLib_nativeFileDiff,
   Java_org_apache_subversion_javahl_util_DiffLib_nativeFileMerge):
   Calculate and and return the boolean return value.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]
* UtilTests.java (UtilTests.testFileDiff): Check return value from
   SVNUtil.fileDiff, and adjust expected output for platform-specific
   end-of-line sequences.
  (UtilTests.testFileMerge): Similar changes as above.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1518577 13f79535-47bb-0310-9956-ffa450edef68
* subversion/bindings/swig/ruby/test/util.rb
  (@svnserve_pid_file): Following up on r1518270, commit the change where 
    this variable is initialized.

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