subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From br...@apache.org
Subject svn commit: r1491757 [1/2] - in /subversion/branches/javahl-1.8-extensions: ./ build/generator/ contrib/hook-scripts/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/swig/ subversion/bindings/swig/include/ subversion/bi...
Date Tue, 11 Jun 2013 11:49:29 GMT
Author: brane
Date: Tue Jun 11 11:49:27 2013
New Revision: 1491757

URL: http://svn.apache.org/r1491757
Log:
Sync javahl-1.8-extensions branch with 1.8.x branch up to r1491752.

Modified:
    subversion/branches/javahl-1.8-extensions/   (props changed)
    subversion/branches/javahl-1.8-extensions/CHANGES   (contents, props changed)
    subversion/branches/javahl-1.8-extensions/INSTALL
    subversion/branches/javahl-1.8-extensions/Makefile.in
    subversion/branches/javahl-1.8-extensions/STATUS
    subversion/branches/javahl-1.8-extensions/build.conf
    subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py
    subversion/branches/javahl-1.8-extensions/configure.ac
    subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/check-mime-type.pl
    subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/svn-keyword-check.pl
    subversion/branches/javahl-1.8-extensions/get-deps.sh
    subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Core.pm
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/t/3client.t
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/greek_tree.rb
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/test_client.rb
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/windows_util.rb
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/svn_client.i
    subversion/branches/javahl-1.8-extensions/subversion/include/mod_authz_svn.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_auth.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_config.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_error.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_hash.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_repos.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_types.h
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_wc.h
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_diff/parse-diff.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_local/split_url.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_repos/replay.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/sqlite3wrapper.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/subst.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/conflicts.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/diff_local.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/tree_conflicts.c
    subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c
    subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c
    subversion/branches/javahl-1.8-extensions/subversion/svnadmin/svnadmin.c
    subversion/branches/javahl-1.8-extensions/subversion/svnserve/svnserve.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/diff_tests.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/merge_tests.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/subst_translate-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/javahl-1.8-extensions/tools/server-side/svnpubsub/commit-hook.py
    subversion/branches/javahl-1.8-extensions/tools/server-side/svnpubsub/svnpubsub/server.py

Propchange: subversion/branches/javahl-1.8-extensions/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x-r1477876:r1478009-1487716
  Merged /subversion/branches/1.8.x:r1483275-1491752
  Merged /subversion/trunk:r1477876,1477891,1478001,1479540,1479563,1479605,1480119,1480149,1480344,1480412,1480442,1480738,1480765,1481944,1482436,1482479,1482524,1482528,1482536,1482724,1482759,1482779,1482829,1483116,1483125,1483391,1483397,1483555,1483557,1483575,1483580,1483781,1483927,1483939,1483947,1483964-1483965,1483968,1483972,1483975,1483977,1483984,1484006,1484016-1484017,1484023,1484755,1485018,1485127,1485350,1485413,1485427,1485447,1485449,1485497,1485501,1485650,1486072,1486457,1486572,1486809,1486915,1486931,1487083,1488183,1488267,1488294,1488425,1488639,1488878,1489114,1489116,1489203,1489935,1490045,1490326
  Merged /subversion/branches/1.8.x-libsvnjavahl-version:r1483910-1485054

Modified: subversion/branches/javahl-1.8-extensions/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/CHANGES?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/CHANGES (original)
+++ subversion/branches/javahl-1.8-extensions/CHANGES Tue Jun 11 11:49:27 2013
@@ -1,5 +1,5 @@
 Version 1.8.0
-(14 Jun 2013, from /branches/1.8.x)
+(18 Jun 2013, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.0
 
  User-visible changes:
@@ -119,6 +119,9 @@ http://svn.apache.org/repos/asf/subversi
     * txn name now reported to post-commit hooks (r1240856)
     * support for server-side keyword expansion in mod_dav_svn (r1466055)
     * FSFS now able to cache revision properties (r1326307)
+    * FSFS cache for changed-paths increases 'svn log' performance (r1378358)
+    * FSFS cache mergeinfo requested during 'log -g' (r1395439)
+    * many FSFS caching improvements (r1390435, r1390447)
     * directory and property deltification option in FSFS (issue #4084)
     * fine-grained control deltification behavior via fsfs.conf (r1311476)
     * FSFS de-duplication ("rep sharing") now works within a revision (r1397773)
@@ -134,7 +137,6 @@ http://svn.apache.org/repos/asf/subversi
     * svnserve now logs explicit path and reason for authz failures (r1446542)
     * validate offsets from rep-cache to prevent FSFS corruption (issue #4277)
     * new AuthzSVNGroupsFile option to store authz groups separately (r1438407)
-    * FSFS revprop packing support (r1358667 et al)
     * new 'SVNAllowBulkUpdates prefer' option for mod_dav_svn (r1417642, et al)
     * new 'SVNMasterVersion' option for mod_dav_svn (r1398962)
     * added virtual-host support to 'svnserve' (r1401296)
@@ -149,11 +151,8 @@ http://svn.apache.org/repos/asf/subversi
     * mod_dav_svn now advertises supported POST types (r1375123)
     * mod_dav_svn can create transaction with inline txnprops (r1375167)
     * run start-commit hook after transaction creation (r1376201)
-    * fsfs cache for changed-paths increases 'svn log' performance (r1378358)
     * avoid byte-for-byte comparison where it can be avoided (r1390641)
-    * cache mergeinfo requested during 'log -g' (r1395439)
     * various server-side performance improvements for 'log -g' (r1395442 et al)
-    * many FSFS caching improvements (r1390435, r1390447)
     * allow up to 10Gbit throughput with svnserve (r1391788)
     * install mod_dontdothat correctly (r1454450)
     * svnadmin verify can now verify transactions (r1462353)
@@ -262,7 +261,6 @@ http://svn.apache.org/repos/asf/subversi
     * make mailer.py generate Date and Message-ID headers (r1449592)
     * new '-?' option support for 'svnmucc' (r1339428)
     * provide the repository name to mailer.py (r1439592)
-    * make Julian happy (r1413030)
     * add '--force-interactive' to svnmucc (r1457789)
     * add '--trust-server-cert' to svnmucc (r1458995)
   
@@ -295,7 +293,7 @@ http://svn.apache.org/repos/asf/subversi
     * fix build with Apache HTTPD 2.5 (r1408985)
     * allow running the test suite through a http proxy (r1410195)
     * don't use non-constant initializers in struct variables (r1412911)
-    * allow generation of Visual Studio 11 compatible projects (r1245152)
+    * allow generation of Visual Studio 2012 compatible projects (r1245152)
     * nicer pretty-printing of Subversion data types in gdb (r1367262 et al)
     * teach serf build on Windows to use static APR/Util and OpenSSL (r1371338)
     * add --ssl-cert option to win-tests.py to run tests over https (r1372760)
@@ -308,6 +306,7 @@ http://svn.apache.org/repos/asf/subversi
     * FSFS caching supports prefixes now (r1462436)
     * maintainer mode now prints symbolic error codes (r1465157)
     * don't require NLS support for kwallet support (r1466445)
+    * make Julian happy (r1413030)
 
   - API changes:
     * fix inconsistent handling of log revs without changed paths (issue #3694)
@@ -340,6 +339,39 @@ http://svn.apache.org/repos/asf/subversi
     * fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
 
 
+Version 1.7.10
+(30 May 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.10
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * fix 'svn revert' "no such table: revert_list" spurious error (issue #4168)
+    * fix 'svn diff' doesn't show some locally added files (issue #3797)
+    * fix changelist filtering when --changelist values aren't UTF8 (r1475724)
+    * fix 'svn diff --git' shows wrong copyfrom (issue #4294)
+    * fix 'svn diff -x-w' shows wrong changes (issues #4133 and #4270, r1427278)
+    * fix 'svn blame' sometimes shows every line as modified (issue #4034)
+    * fix regression in 'svn status -u' output for externals (r1434750)
+    * fix file permissions change on commit of file with keywords (issue #4331)
+    * improve some fatal error messages (r1465975)
+    * fix externals not removed when working copy is made shallow (issue #3741)
+
+  - Server-side bugfixes:
+    * fix FSFS repository corruption due to newline in filename (issue #4340)
+    * fix svnserve exiting when a client connection is aborted (r1482759)
+    * fix svnserve memory use after clear (issue #4365)
+    * fix repository corruption on power/disk failure on Windows (r1483781)
+
+ Developer-visible changes
+  - General:
+    * make get-deps.sh compatible with Solaris /bin/sh (r1451678)
+    * fix infinite recursion bug in get-deps.sh (r1421541, r1424977)
+    * fix uninitialised output parameter of svn_fs_commit_txn() (r1461743)
+
+  - Bindings:
+    * fix JavaHL thread-safety bug (r1476359)
+
+
 Version 1.7.9
 (04 Apr 2013, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.9
@@ -881,6 +913,23 @@ the 1.6 release:  http://subversion.apac
     * fix type mapping of svn_txdelta_window_t in python bindings (issue #3688)
 
 
+Version 1.6.23
+(30 May 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.23
+
+ User-visible changes
+  - Server-side bugfixes:
+    * fix FSFS repository corruption due to newline in filename (issue #4340)
+    * fix svnserve exiting when a client connection is aborted (r1482759)
+
+  - Other tool improvements and bugfixes:
+    * fix argument processing in contrib hook scripts (r1485350)
+
+
+Version 1.6.22
+(Not released, see changes for 1.6.23.)
+
+
 Version 1.6.21
 (04 Apr 2013, from /branches/1.6.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.6.21

Propchange: subversion/branches/javahl-1.8-extensions/CHANGES
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x/CHANGES:r1483275-1491752
  Merged /subversion/trunk/CHANGES:r1482877-1483076,1483078-1483100,1483102-1483608,1485413,1485427,1485497,1485501,1486572,1488639

Modified: subversion/branches/javahl-1.8-extensions/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/INSTALL?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/INSTALL (original)
+++ subversion/branches/javahl-1.8-extensions/INSTALL Tue Jun 11 11:49:27 2013
@@ -306,7 +306,7 @@ I.    INTRODUCTION
       newer. The autogen.sh script knows about that.
 
 
-      5.  Serf library 1.2 or newer (http://code.google.com/p/serf/) (OPTIONAL)
+      5.  Serf library 1.2.1 or newer (OPTIONAL)
 
       If you want your client to be able to speak to an Apache
       server (via a http:// or https:// URL), you must link against
@@ -320,6 +320,9 @@ I.    INTRODUCTION
 
       instead.
 
+      Serf can be obtained via your system's package distribution
+      system or directly from http://code.google.com/p/serf/.
+
       For more information on serf and Subversion's ra_serf, see the file
       subversion/libsvn_ra_serf/README.
 

Modified: subversion/branches/javahl-1.8-extensions/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/Makefile.in?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/Makefile.in (original)
+++ subversion/branches/javahl-1.8-extensions/Makefile.in Tue Jun 11 11:49:27 2013
@@ -629,7 +629,7 @@ doc-api: mkdir-init
 
 # Generate API documentation for the JavaHL package.
 doc-javahl:
-	$(JAVADOC) -d $(top_srcdir)/doc/javadoc \
+	$(JAVADOC) -d $(abs_builddir)/doc/javadoc \
 	  -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
 	  -link http://java.sun.com/javase/6/docs/api/ \
 	  org.tigris.subversion.javahl \

Modified: subversion/branches/javahl-1.8-extensions/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/STATUS?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/STATUS (original)
+++ subversion/branches/javahl-1.8-extensions/STATUS Tue Jun 11 11:49:27 2013
@@ -26,31 +26,9 @@ Candidate changes:
      of the -Wno-clobbered, see above).
    Votes:
      +1: brane (for 1.8.1)
+     +1: danielsh
      +0: rhuijben (looks ok, but I can't test or verify via code inspection)
 
- * r1480149
-   Fix a build problem on OS X 10.5.
-   Justification:
-     Necessary for building on PPC Macs.
-   Votes:
-     +1: mattiase (non-binding)
-     +1: rhuijben
-
- * r1477876, r1477891, r1478001, r1479605
-   Fix a bug whereby a property conflict description always reported
-     'unknown' for the node kind. Add a test which catches that bug.
-   Justification:
-     Regression from 1.7.
-   Branch: ^/subversion/branches/1.8.x-r1477876
-   Notes:
-     The fix is in r1477876, and the branch was needed to resolve conflicts
-     (rather than porting prior changes on which it depended). The test is
-     in r1478001, and it depends on the test file changes made in r1477891.
-     r1479605 fixes an interactive conflict resolution bug triggered by this
-     change.
-   Votes:
-     +1: julianfoad
-
  * r1469519, r1469520, r1481848, r1481870
    Silence compiler warnings, tighten scopes and improve code.
    Justification:
@@ -60,76 +38,76 @@ Candidate changes:
      +1: blair
      +1: brane (for 1.8.1)
      -0: philip (see dev thread: false alarm, trades one warning for another)
-     -0: rhuijben, breser (merge conflict in configure.ac in r1481848
-                           <danielsh> resolved on the branch)
 
- * r1482436
-   Resolve regression in svn_ra_replay_range() where it didn't apply
-   the send_changes FALSE flag to property changes.
+ * r1489885, r1489928
+   Resolve regression where 'svn ci ci' just returned success when 'ci' doesn't
+   exist in the working copy.
    Justification:
-     The replay without changes mode is used by repository viewers
-     to obtain more information about changes. We should keep this
-     behavior stable
+     Improves usability of 'svn', and of the status api (for api users).
+   Notes:
+     This introduces a warning/error for a specific case via the status walker,
+     so I'm not 100% sure if we should introduce this patch in this form in
+     1.8.1 or later.
    Votes:
-     +1: rhuijben (for either 1.8.0 or later)
+     +0: rhuijben (Needs more work. Breaks JavaHL)
 
- * r1481944
-   Let Windows compile against BDB 5.0, 5.1, 5.2 and 5.3.
+ * r1490679
+   Allow test suite to run properly on Windows.
    Justification:
-     No reason to prevent this.
+     Fixes a (very) minor test setup failure when running the ra_serf tests on
+     Windows for the first time in a given environment.
    Votes:
-     +1: breser (for 1.8.1)
+     +1: pburba, rhuijben
 
- * r1480344, r1480412, r1480442, r1480738, r1480765, r1482479, r1482524,
-   r1482528, r1482536
-   Fix Ruby binding tests on Windows and support Ruby 1.9[1].
+ * r1489339
+   Return 501/412 rather than 401 for lock errors.
    Justification:
-     Running the test suite is important for, you know, testing.
+     Old values are not valid HTTP.
    Notes:
-     Bindings changes, so can go into 1.8.0.  [1] Ruby 1.9 doesn't quite
-     yet work on Windows, but this gets us part way there, so there is no
-     compelling reason not to include with this bunch.
-   Votes:
-     +1: pburba
-
- * r1482724
-   Fix a link error when configured with --enable-runtime-module-search.
-   Justification:
-     Build fails.
+     Usually the authorization layer produces an error earlier. This patch
+     should only change the behavior for repositories without authorization
+     requirements for these operations.
    Votes:
      +1: philip, rhuijben
 
- * r1482759, r1482779
-   Prevent svnserve from exiting when a client connection is aborted.
+ * r1490684
+   Return 500 rather than 409 when commit fails and it is not a conflict.
    Justification:
-     DoS against svnserve possible.
+     Not a client failure so 4xx is wrong.
    Votes:
-     +1: stsp (without r1482779), rhuijben, philip
+     +1: philip
 
- * r1482829
-   Reduce diskspace needed by our testsuite when using cleanup mode.
+ * r1491432
+   Rename 'automatic merge' to 'complete merge' in the merge help text.
    Justification:
-     A 256 MB ramdrive should be more than enough for running the
-     tests in parallel mode, but currently isn't.
+     Prevent user confusion. "Automatic merge" sounds too ambitious and
+     may be misunderstood if not used in context. The term 'complete'
+     refers to a merge which merges all outstanding changes from the
+     source branch, i.e. sync or reintegrate.
+   Notes:
+     This should be merged for 1.8.0, if possible, else different client
+     versions will name the feature in different ways.
    Votes:
-     +1: rhuijben
+     +1: stsp
 
- * r1483116
-   Retry removing test temporary directories when running as deferred deletes
-   using a short delay.
+ * r1491707
+   Add version header to svnpubsub server.
    Justification:
-     Without this patch running the svnserve-bdb tests on Windows leaves a lot
-     of temporary directories behind, causing testruns to fail on ramdrives.
+     Make Daniel happy; potentially allow proxies to filter on this or some
+     hypothetical use case.
    Votes:
-     +1: rhuijben
+     +1: danielsh, breser
 
 Veto-blocked changes:
 =====================
 
+Approved for 1.8.1 or if soak is restarted for 1.8.0:
+====================================================
+
 Approved changes:
 =================
 
-# 1.8.0-rc2 is being voted on currently and as such 1.8.0 is in the soak phase.
+# 1.8.0-rc3 is being voted on currently and as such 1.8.0 is in the soak phase.
 # Changes that are not intended for 1.8.0 should not be placed here and changes
 # that would restart the soak should not be added unless they are resolving
 # blocking issues.  If in doubt see this link for details:

Modified: subversion/branches/javahl-1.8-extensions/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/build.conf?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/build.conf (original)
+++ subversion/branches/javahl-1.8-extensions/build.conf Tue Jun 11 11:49:27 2013
@@ -241,7 +241,7 @@ description = Subversion Repository File
 type = lib
 path = subversion/libsvn_fs
 install = ramod-lib
-libs = libsvn_fs_util libsvn_subr fs-libs aprutil apr
+libs = libsvn_fs_util libsvn_delta libsvn_subr fs-libs aprutil apr
 # conditionally add more dependencies
 add-deps = $(SVN_FS_LIB_DEPS)
 add-install-deps = $(SVN_FS_LIB_INSTALL_DEPS)

Modified: subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py (original)
+++ subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py Tue Jun 11 11:49:27 2013
@@ -212,7 +212,8 @@ class GeneratorBase(gen_base.GeneratorBa
 
   def _find_bdb(self):
     "Find the Berkeley DB library and version"
-    for ver in ("48", "47", "46", "45", "44", "43", "42", "41", "40"):
+    for ver in ("53", "52", "51", "50", "48", "47", "46",
+                "45", "44", "43", "42", "41", "40"):
       lib = "libdb" + ver
       path = os.path.join(self.bdb_path, "lib")
       if os.path.exists(os.path.join(path, lib + ".lib")):
@@ -1253,7 +1254,9 @@ class WinGeneratorBase(GeneratorBase):
     self.ruby_version = None
     self.ruby_major_version = None
     self.ruby_minor_version = None
-    proc = os.popen('ruby -rrbconfig -e ' + escape_shell_arg(
+    # Pass -W0 to stifle the "-e:1: Use RbConfig instead of obsolete
+    # and deprecated Config." warning if we are using Ruby 1.9.
+    proc = os.popen('ruby -rrbconfig -W0 -e ' + escape_shell_arg(
                     "puts Config::CONFIG['ruby_version'];"
                     "puts Config::CONFIG['LIBRUBY'];"
                     "puts Config::CONFIG['archdir'];"
@@ -1440,7 +1443,7 @@ class WinGeneratorBase(GeneratorBase):
   def _find_serf(self):
     "Check if serf and its dependencies are available"
 
-    minimal_serf_version = (1, 2, 0)
+    minimal_serf_version = (1, 2, 1)
     self.serf_lib = None
     if self.serf_path and os.path.exists(self.serf_path):
       if self.openssl_path and os.path.exists(self.openssl_path):

Modified: subversion/branches/javahl-1.8-extensions/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/configure.ac?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/configure.ac (original)
+++ subversion/branches/javahl-1.8-extensions/configure.ac Tue Jun 11 11:49:27 2013
@@ -125,7 +125,7 @@ dnl Search for pkg-config
 AC_PATH_PROG(PKG_CONFIG, pkg-config)
 
 dnl Search for serf
-SVN_LIB_SERF(1,2,0)
+SVN_LIB_SERF(1,2,1)
 
 if test "$svn_lib_serf" = "yes"; then
   AC_DEFINE([SVN_HAVE_SERF], 1,

Modified: subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/check-mime-type.pl
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/check-mime-type.pl?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/check-mime-type.pl (original)
+++ subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/check-mime-type.pl Tue Jun 11 11:49:27 2013
@@ -120,7 +120,7 @@ foreach my $path ( @files_added )
 		# Parse the complete list of property values of the file $path to extract
 		# the mime-type and eol-style
 		foreach my $prop (&read_from_process($svnlook, 'proplist', $repos, '-t',
-		                  $txn, '--verbose', $path))
+		                  $txn, '--verbose', '--', $path))
 			{
 				if ($prop =~ /^\s*svn:mime-type : (\S+)/)
 					{
@@ -187,7 +187,7 @@ sub safe_read_from_pipe
       croak "$0: safe_read_from_pipe passed no arguments.\n";
     }
   print "Running @_\n";
-  my $pid = open(SAFE_READ, '-|');
+  my $pid = open(SAFE_READ, '-|', @_);
   unless (defined $pid)
     {
       die "$0: cannot fork: $!\n";

Modified: subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/svn-keyword-check.pl
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/svn-keyword-check.pl?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/svn-keyword-check.pl (original)
+++ subversion/branches/javahl-1.8-extensions/contrib/hook-scripts/svn-keyword-check.pl Tue Jun 11 11:49:27 2013
@@ -141,7 +141,7 @@ sub check {
                 return 1;
             } else {
                 my @keywords = get_svnkeywords($file);
-                my $fh = _pipe("$svnlook cat $flag $value $repos $file");
+                my $fh = _pipe($svnlook, qw/cat/, $flag, $value, $repos, '--', $file);
                 while (my $line = <$fh>) {
                     foreach my $keyword (@keywords) {
                         if ($line =~ m/$keyword/) {
@@ -168,7 +168,7 @@ sub file_is_binary {
         return 0;
     }
     if (has_svn_property($file, "svn:mime-type")) {
-        my ($mimetype) = read_from_process("$svnlook propget $flag $value $repos svn:mime-type $file");
+        my ($mimetype) = read_from_process($svnlook, qw/propget/, $flag, $value, $repos, 'svn:mime-type', '--', $file);
         chomp($mimetype);
         $mimetype =~ s/^\s*(.*)/$1/;
         if ($mimetype =~ m/^text\//) {
@@ -186,7 +186,7 @@ sub file_is_binary {
 # Return a list of svn:keywords on a file
 sub get_svnkeywords {
     my $file = shift;
-    my @lines = read_from_process("$svnlook propget $flag $value $repos svn:keywords $file");
+    my @lines = read_from_process($svnlook, qw/propget/, $flag, $value, $repos, 'svn:keywords', '--', $file);
     my @returnlines;
     foreach my $line (@lines) {
         $line =~ s/\s+/ /;
@@ -199,7 +199,7 @@ sub get_svnkeywords {
 sub has_svn_property {
     my $file = shift;
     my $keyword = shift;
-    my @proplist = read_from_process("$svnlook proplist $flag $value $repos $file");
+    my @proplist = read_from_process($svnlook, qw/proplist/, $flag, $value, $repos, '--', $file);
     foreach my $prop (@proplist) {
         chomp($prop);
         if ($prop =~ m/\b$keyword\b/) {
@@ -241,7 +241,7 @@ sub safe_read_from_pipe {
 # Return the filehandle as a glob so we can loop over it elsewhere.
 sub _pipe {
     local *SAFE_READ;
-    my $pid = open(SAFE_READ, '-|');
+    my $pid = open(SAFE_READ, '-|', @_);
     unless (defined $pid) {
         die "$0: cannot fork: $!\n";
     }

Modified: subversion/branches/javahl-1.8-extensions/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/get-deps.sh?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/get-deps.sh (original)
+++ subversion/branches/javahl-1.8-extensions/get-deps.sh Tue Jun 11 11:49:27 2013
@@ -31,19 +31,26 @@
 # features already used in the file.  Reviewing the history of changes
 # may be useful as well.
 
-APR=apr-1.4.6
-APR_UTIL=apr-util-1.5.1
-SERF=serf-1.2.0
-ZLIB=zlib-1.2.8
-SQLITE_VERSION=3.7.15.1
+APR_VERSION=${APR_VERSION:-"1.4.6"}
+APU_VERSION=${APU_VERSION:-"1.5.1"}
+SERF_VERSION=${SERF_VERSION:-"1.2.1"}
+ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
+SQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"}
+GTEST_VERSION=${GTEST_VERSION:-"1.6.0"}
+HTTPD_VERSION=${HTTPD_VERSION:-"2.4.3"}
+APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
+
+APR=apr-${APR_VERSION}
+APR_UTIL=apr-util-${APU_VERSION}
+SERF=serf-${SERF_VERSION}
+ZLIB=zlib-${ZLIB_VERSION}
 SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
 SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
-GTEST_VERSION=1.6.0
 GTEST=gtest-${GTEST_VERSION}
 GTEST_URL=http://googletest.googlecode.com/files/
 
-HTTPD=httpd-2.4.3
-APR_ICONV=apr-iconv-1.2.1
+HTTPD=httpd-${HTTPD_VERSION}
+APR_ICONV=apr-iconv-${APR_ICONV_VERSION}
 
 BASEDIR=`pwd`
 TEMPDIR=$BASEDIR/temp

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Tue Jun 11 11:49:27 2013
@@ -131,10 +131,10 @@ public class NativeResources
     {
         initNativeLibrary();
         version = new Version();
-        if (!version.isAtLeast(1, 7, 0))
+        if (!version.isAtLeast(1, 8, 0))
         {
             throw new LinkageError("Native library version must be at least " +
-                                   "1.7.0, but is only " + version);
+                                   "1.8.0, but is only " + version);
         }
     }
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_containers.swg?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_containers.swg Tue Jun 11 11:49:27 2013
@@ -266,6 +266,13 @@
 #endif
 
 #ifdef SWIGPERL
+%typemap(in) apr_hash_t *PROPHASH
+  (apr_pool_t *_global_pool = NULL)
+{
+  if (_global_pool == NULL)
+    _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+  $1 = svn_swig_pl_hash_to_prophash($input, _global_pool);  
+}
 %typemap(out) apr_hash_t *PROPHASH
 {
   %append_output(svn_swig_pl_prophash_to_hash($1));
@@ -777,6 +784,12 @@
 }
 #endif
 
+#ifdef SWIGPERL
+%typemap(in) apr_array_header_t *REVISION_RANGE_LIST {
+  $1 = svn_swig_pl_array_to_apr_array_revision_range($input, _global_pool);
+}
+#endif
+
 #ifdef SWIGRUBY
 %typemap(in) apr_array_header_t *REVISION_RANGE_LIST {
   $1 = svn_swig_rb_array_to_apr_array_revision_range($input, _global_pool);

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_types.swg?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/include/svn_types.swg Tue Jun 11 11:49:27 2013
@@ -1173,7 +1173,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 */
 #ifdef SWIGPERL
 %typemap(in) svn_opt_revision_t * (svn_opt_revision_t rev) {
-    $1 = svn_swig_pl_set_revision(&rev, $input);
+  $1 = svn_swig_pl_set_revision(&rev, $input, TRUE);
 }
 #endif
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Tue Jun 11 11:49:27 2013
@@ -98,6 +98,71 @@ static void *convert_pl_revnum_t(SV *val
   return (void *)result;
 }
 
+static void *convert_pl_svn_string_t(SV *value, void *dummy, apr_pool_t *pool)
+{
+    svn_string_t *result = apr_palloc(pool, sizeof(svn_string_t));
+    /* just the in typemap for svn_string_t */
+    result->data = SvPV(value, result->len);
+    return (void *)result;
+}
+
+/* Convert a revision range and return a svn_opt_revision_range_t*.
+ * Value can be:
+ * - a _p_svn_opt_revision_range_t object
+ * - a reference to a two-element array, [start, end],
+ *   where start and end is anything accepted by svn_swig_pl_set_revision
+ * If value is not acceptable and *(svn_boolean_t *)ctx is FALSE,
+ * convert_pl_revision_range returns NULL, otherwise it croak()s.
+ */
+static void *convert_pl_revision_range(SV *value, void *ctx, apr_pool_t *pool)
+{
+    svn_boolean_t croak_on_error = *(svn_boolean_t *)ctx;
+
+    if (sv_isobject(value) && sv_derived_from(value, "_p_svn_opt_revision_range_t")) {
+        svn_opt_revision_range_t *range;
+        /* this will assign to range */
+        SWIG_ConvertPtr(value, (void **)&range, _SWIG_TYPE("svn_opt_revision_range_t *"), 0);
+        return range;
+    } 
+
+    if (SvROK(value) 
+        && SvTYPE(SvRV(value)) == SVt_PVAV
+        && av_len((AV *)SvRV(value)) == 1) {    
+        /* value is a two-element ARRAY */
+        AV* array = (AV *)SvRV(value);
+        svn_opt_revision_t temp_start, temp_end;
+        svn_opt_revision_t *start, *end;
+        svn_opt_revision_range_t *range;
+
+        /* Note: Due to how svn_swig_pl_set_revision works,
+         * either the passed in svn_opt_revision_t is modified
+         * (and the original pointer returned) or a different pointer 
+         * is returned. svn_swig_pl_set_revision may return NULL
+         * only if croak_on_error is FALSE.
+         */
+        start = svn_swig_pl_set_revision(&temp_start, 
+                                         *av_fetch(array, 0, 0), croak_on_error);
+        if (start == NULL)
+            return NULL;
+        end = svn_swig_pl_set_revision(&temp_end, 
+                                       *av_fetch(array, 1, 0), croak_on_error);
+        if (end == NULL)
+            return NULL;
+
+        /* allocate a new range and copy in start and end fields */
+        range = apr_palloc(pool, sizeof(*range));
+        range->start = *start;
+        range->end = *end;
+        return range;
+    } 
+
+    if (croak_on_error)
+        croak("unknown revision range: "
+              "must be an array of length 2 whose elements are acceptable "
+              "as opt_revision_t or a _p_svn_opt_revision_range_t object");
+    return NULL;
+}
+
 /* perl -> c hash convertors */
 static apr_hash_t *svn_swig_pl_to_hash(SV *source,
                                        pl_element_converter_t cv,
@@ -156,6 +221,11 @@ apr_hash_t *svn_swig_pl_objs_to_hash_of_
                              NULL, pool);
 }
 
+apr_hash_t *svn_swig_pl_hash_to_prophash(SV *source, apr_pool_t *pool)
+{
+  return svn_swig_pl_to_hash(source, convert_pl_svn_string_t, NULL, pool);
+}
+
 /* perl -> c array convertors */
 static const
 apr_array_header_t *svn_swig_pl_to_array(SV *source,
@@ -204,6 +274,42 @@ const apr_array_header_t *svn_swig_pl_ob
                               tinfo, pool);
 }
 
+/* Convert a single revision range or an array of revisions ranges
+ * Note: We can't simply use svn_swig_pl_to_array() as is, since 
+ * it immediatley checks whether source is an array reference and then
+ * proceeds to treat this as the "array of ..." case. But a revision range
+ * may be specified as a (two-element) array. Hence we first try to
+ * convert source as a single revision range. Failing that and if it's
+ * an array we then call svn_swig_pl_to_array(). Otherwise we croak().
+ */
+const apr_array_header_t *svn_swig_pl_array_to_apr_array_revision_range(
+        SV *source, apr_pool_t *pool)
+{
+    svn_boolean_t croak_on_error = FALSE;
+    svn_opt_revision_range_t *range;
+
+    if (range = convert_pl_revision_range(source, &croak_on_error, pool)) {
+        apr_array_header_t *temp = apr_array_make(pool, 1, 
+                                                  sizeof(svn_opt_revision_range_t *));
+        temp->nelts = 1;
+        APR_ARRAY_IDX(temp, 0, svn_opt_revision_range_t *) = range;
+        return temp;
+    }
+
+    if (SvROK(source) && SvTYPE(SvRV(source)) == SVt_PVAV) {
+        croak_on_error = TRUE;
+        return svn_swig_pl_to_array(source, convert_pl_revision_range, 
+                                    &croak_on_error, pool);
+    }
+
+    croak("must pass a single revision range or a reference to an array of revision ranges");
+
+    /* This return is actually unreachable because of the croak above,
+     * however, Visual Studio's compiler doesn't like if all paths don't have
+     * a return and errors out otherwise. */ 
+    return NULL;
+}
+
 /* element convertors for c -> perl */
 typedef SV *(*element_converter_t)(void *value, void *ctx);
 
@@ -316,8 +422,13 @@ SV *svn_swig_pl_revnums_to_list(const ap
 }
 
 /* perl -> c svn_opt_revision_t conversion */
-svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source)
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, 
+                                             SV *source, 
+                                             svn_boolean_t croak_on_error)
 {
+#define maybe_croak(argv) do { if (croak_on_error) croak argv; \
+                               else return NULL; } while (0)
+
     if (source == NULL || source == &PL_sv_undef || !SvOK(source)) {
         rev->kind = svn_opt_revision_unspecified;
     }
@@ -348,33 +459,34 @@ svn_opt_revision_t *svn_swig_pl_set_revi
 
             char *end = strchr(input,'}');
             if (!end)
-                croak("unknown opt_revision_t string \"%s\": "
-                      "missing closing brace for \"{DATE}\"", input);
+                maybe_croak(("unknown opt_revision_t string \"%s\": "
+                             "missing closing brace for \"{DATE}\"", input));
             *end = '\0';
             err = svn_parse_date (&matched, &tm, input + 1, apr_time_now(),
                                   svn_swig_pl_make_pool ((SV *)NULL));
             if (err) {
                 svn_error_clear (err);
-                croak("unknown opt_revision_t string \"{%s}\": "
-                      "internal svn_parse_date error", input + 1);
+                maybe_croak(("unknown opt_revision_t string \"{%s}\": "
+                             "internal svn_parse_date error", input + 1));
             }
             if (!matched)
-                croak("unknown opt_revision_t string \"{%s}\": "
-                      "svn_parse_date failed to parse it", input + 1);
+                maybe_croak(("unknown opt_revision_t string \"{%s}\": "
+                             "svn_parse_date failed to parse it", input + 1));
 
             rev->kind = svn_opt_revision_date;
             rev->value.date = tm;
         } else
-            croak("unknown opt_revision_t string \"%s\": must be one of "
-                  "\"BASE\", \"HEAD\", \"WORKING\", \"COMMITTED\", "
-                  "\"PREV\" or a \"{DATE}\"", input);
+            maybe_croak(("unknown opt_revision_t string \"%s\": must be one of "
+                         "\"BASE\", \"HEAD\", \"WORKING\", \"COMMITTED\", "
+                         "\"PREV\" or a \"{DATE}\"", input));
     } else
-        croak("unknown opt_revision_t type: must be undef, a number, "
-              "a string (one of \"BASE\", \"HEAD\", \"WORKING\", "
-              "\"COMMITTED\", \"PREV\" or a \"{DATE}\") "
-              "or a _p_svn_opt_revision_t object");
+        maybe_croak(("unknown opt_revision_t type: must be undef, a number, "
+                     "a string (one of \"BASE\", \"HEAD\", \"WORKING\", "
+                     "\"COMMITTED\", \"PREV\" or a \"{DATE}\") "
+                     "or a _p_svn_opt_revision_t object"));
 
     return rev;
+#undef maybe_croak
 }
 
 /* put the va_arg in stack and invoke caller_func with func.

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Tue Jun 11 11:49:27 2013
@@ -93,9 +93,12 @@ apr_hash_t *svn_swig_pl_objs_to_hash_by_
                                              apr_pool_t *pool);
 apr_hash_t *svn_swig_pl_objs_to_hash_of_revnum_t(SV *source,
                                                  apr_pool_t *pool);
+apr_hash_t *svn_swig_pl_hash_to_prophash(SV *source, apr_pool_t *pool);
 const apr_array_header_t *svn_swig_pl_objs_to_array(SV *source,
                                                     swig_type_info *tinfo,
                                                     apr_pool_t *pool);
+const apr_array_header_t *svn_swig_pl_array_to_apr_array_revision_range(
+        SV *source, apr_pool_t *pool);
 
 SV *svn_swig_pl_array_to_list(const apr_array_header_t *array);
 /* Formerly used by pre-1.0 APIs. Now unused
@@ -106,7 +109,9 @@ SV *svn_swig_pl_convert_array(const apr_
 
 SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array);
 
-svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source);
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, 
+                                             SV *source,
+                                             svn_boolean_t croak_on_error);
 
 /* thunked log_message receiver function.  */
 svn_error_t * svn_swig_pl_thunk_log_receiver(void *baton,

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm Tue Jun 11 11:49:27 2013
@@ -12,8 +12,8 @@ BEGIN {
             checkout2 checkout update4 update3 update2 update switch2 switch
             add4 add3 add2 add mkdir4 mkdir3 mkdir2 mkdir delete3 delete2
             delete import3 import2 import commit4 commit3 commit2
-            commit status4 status3 status2 status log4 log3 log2 log blame4
-            blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
+            commit status4 status3 status2 status log5 log4 log3 log2 log 
+            blame4 blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
             diff_peg3 diff_peg2 diff_peg diff_summarize2
             diff_summarize diff_summarize_peg2 diff_summarize_peg
             merge3 merge2 merge merge_peg3 merge_peg2 merge_peg

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Core.pm?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Core.pm Tue Jun 11 11:49:27 2013
@@ -703,6 +703,8 @@ use SVN::Base qw(Core svn_log_changed_pa
 
 =head2 svn_log_changed_path2_t
 
+An object to represent a path that changed for a log entry.
+
 =over 4
 
 =item $lcp-E<gt>action()
@@ -825,11 +827,56 @@ use SVN::Base qw(Core svn_opt_revision_t
 
 =head2 svn_opt_revision_t
 
+A revision, specified in one of C<SVN::Core::opt_revision_*> ways.
+
+=over 4
+
+=item $rev-E<gt>kind()
+
+An enum denoting how the revision C<$rev> was specified.  One of 
+C<$SVN::Core::opt_revision_unspecified>,
+C<$SVN::Core::opt_revision_number>,
+C<$SVN::Core::opt_revision_date>,
+C<$SVN::Core::opt_revision_committed>,
+C<$SVN::Core::opt_revision_previous>,
+C<$SVN::Core::opt_revision_base>,
+C<$SVN::Core::opt_revision_working>
+or C<$SVN::Core::opt_revision_head>.
+
+=item $rev-E<gt>value()
+
+Extra data about the revision. Only relevant if C<$rev-E<gt>kind> is
+C<$SVN::Core::opt_revision_number> (where it contains the revision number)
+or C<$SVN::Core::opt_revision_date> (where it contains a date).
+
+=back
+
 =cut
 
 package _p_svn_opt_revision_value_t;
 use SVN::Base qw(Core svn_opt_revision_value_t_);
 
+package _p_svn_opt_revision_range_t;
+use SVN::Base qw(Core svn_opt_revision_range_t_);
+
+=head2 svn_opt_revision_range_t
+
+An object representing a range of revisions.
+
+=over 4
+
+=item $range-E<gt>start()
+
+The first revision in the range, a C<_p_svn_opt_revision_t> object.
+
+=item $range-E<gt>end()
+
+The last revision in the range, a C<_p_svn_opt_revision_t> object.
+
+=back
+
+=cut
+
 package _p_svn_config_t;
 use SVN::Base qw(Core svn_config_);
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/t/3client.t?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/t/3client.t Tue Jun 11 11:49:27 2013
@@ -20,7 +20,7 @@
 #
 #
 
-use Test::More tests => 262;
+use Test::More tests => 297;
 use strict;
 
 # shut up about variables that are only used once.
@@ -382,7 +382,7 @@ sub test_log_message_receiver {
   isa_ok($pool,'_p_apr_pool_t',
          'pool param is _p_apr_pool_t');
 }
-
+ 
 # TEST  log range $current_rev:$current_rev
 is($ctx->log("$reposurl/dir1/new",$current_rev,$current_rev,1,0,
              \&test_log_message_receiver), 
@@ -410,35 +410,56 @@ $ctx->log3([ $reposurl, @new_paths ],
 });
 
 sub get_full_log {
-    my ($rev) = @_;
+    my ($start, $end) = @_;
     my @log;
-    $ctx->log($reposurl, $rev, 0, 0, 0, sub { 
-        my (undef, $revision, $author, $date, $msg, undef) = @_; 
-        push @log, [ $revision, $author, $date, $msg ];
+    $ctx->log($reposurl, $start, $end, 1, 0, sub { 
+        my ($changed_paths, $revision, $author, $date, $msg, undef) = @_; 
+        # "unpack" the values of the $changed_paths hash 
+        # (_p_svn_log_changed_path_t objects) so that
+        # we can use is_deeply() to compare results
+        my %hash;
+        while (my ($path, $changed) = each %$changed_paths) {
+            foreach (qw( action copyfrom_path copyfrom_rev )) {
+                $hash{$path}{$_} = $changed->$_()
+            }
+        }
+        push @log, [ \%hash, $revision, $author, $date, $msg ];
     });
     return \@log;
 }
 
 # TEST
+my $full_log = get_full_log('HEAD',1);
+is(scalar @$full_log, $current_rev, "history up to 'HEAD'");
+
+# TEST
 my $opt_revision_head = SVN::_Core::new_svn_opt_revision_t();
 $opt_revision_head->kind($SVN::Core::opt_revision_head);
-is_deeply(get_full_log($opt_revision_head),      # got
-          get_full_log('HEAD'));                 # expected
+is_deeply(get_full_log($opt_revision_head,1),   # got
+          $full_log,                            # expected
+          "history up to svn_opt_revision_t of kind head");
+
+# TEST
+is_deeply(get_full_log($current_rev,1),         # got
+          $full_log,                            # expected
+          "history up to number $current_rev");
+
 # TEST
 my $opt_revision_number = SVN::_Core::new_svn_opt_revision_t();
 $opt_revision_number->kind($SVN::Core::opt_revision_number);
 $opt_revision_number->value->number($current_rev);
-is_deeply(get_full_log($opt_revision_number),    # got
-          get_full_log($current_rev));           # expected
+is_deeply(get_full_log($opt_revision_number,1), # got
+          $full_log,                            # expected
+          "history up to svn_opt_revision_t of kind number and value $current_rev");
 
 sub test_log_entry_receiver {
   my ($log_entry,$pool) = @_;
   # TEST
   isa_ok($log_entry, '_p_svn_log_entry_t',
-         'log_entry param is a _p_svn_log_entry_t');
+         'log_entry param');
   # TEST
   isa_ok($pool,'_p_apr_pool_t',
-         'pool param is _p_apr_pool_t');
+         'pool param');
   # TEST
   is($log_entry->revision,$current_rev,
      'log_entry->revision matches current rev');
@@ -446,7 +467,7 @@ sub test_log_entry_receiver {
   my $revprops = $log_entry->revprops;
   # TEST
   isa_ok($revprops,'HASH',
-         'log_entry->revprops is a HASH');
+         'log_entry->revprops');
   # TEST
   is($revprops->{"svn:author"},$username,
      'svn:author revprop matches expected username');
@@ -459,11 +480,11 @@ sub test_log_entry_receiver {
   my $changed_paths = $log_entry->changed_paths2;
   # TEST
   isa_ok($changed_paths,'HASH',
-         'log_entry->changed_paths2 is a HASH');
+         'log_entry->changed_paths2');
   # TEST
   isa_ok($changed_paths->{'/dir1/new'},
          '_p_svn_log_changed_path2_t',
-         'Hash value is a _p_svn_log_changed_path2_t');
+         'log_entry->changed_paths2 value');
   # TEST
   is($changed_paths->{'/dir1/new'}->action(),'A',
      'action returns A for add');
@@ -495,6 +516,86 @@ is($ctx->log4("$reposurl/dir1/new",
    'log4 returns undef');
 
 # TEST
+is($ctx->log5("$reposurl/dir1/new",
+              'HEAD',[$current_rev,0],1, # peg rev, rev ranges, limit
+              1,1,0, # discover_changed_paths, strict_node_history, include_merged_revisions
+              undef, # revprops
+              \&test_log_entry_receiver), 
+   undef,
+   'log5 returns undef');
+
+# test the different forms to specify revision ranges
+sub get_revs {
+    my ($rev_ranges) = @_;
+    my @revs;
+    $ctx->log5($reposurl, 'HEAD', $rev_ranges, 0, 0, 0, 0, undef, sub { 
+        my ($log_entry,$pool) = @_;
+        push @revs, $log_entry->revision;
+    });
+    return \@revs;
+}
+
+my $top = SVN::_Core::new_svn_opt_revision_range_t();
+$top->start('HEAD');
+$top->end('HEAD');
+my $bottom = SVN::_Core::new_svn_opt_revision_range_t();
+$bottom->start(1);
+$bottom->end($current_rev-1);
+
+# TEST
+is_deeply(get_revs($top),   
+          [ $current_rev ], 'single svn_opt_revision_range_t');
+# TEST
+is_deeply(get_revs([$top]), 
+          [ $current_rev ], 'list of svn_opt_revision_range_t');
+# TEST
+is_deeply(get_revs(['HEAD', 'HEAD']),
+          [ $current_rev ], 'single [start, end]');
+# TEST
+is_deeply(get_revs([['HEAD', 'HEAD']]),
+          [ $current_rev ], 'list of [start, end]');
+# TEST
+is_deeply(get_revs([$current_rev, $current_rev]),
+          [ $current_rev ], 'single [start, end]');
+# TEST
+is_deeply(get_revs([[$current_rev, $current_rev]]),
+          [ $current_rev ], 'list of [start, end]');
+# TEST
+is_deeply(get_revs([1, 'HEAD']),
+          [ 1..$current_rev ], 'single [start, end]');
+# TEST
+is_deeply(get_revs([[1, 'HEAD']]),
+          [ 1..$current_rev ], 'list of [start, end]');
+# TEST
+is_deeply(get_revs([1, $opt_revision_head]),
+          [ 1..$current_rev ], 'single [start, end]');
+# TEST
+is_deeply(get_revs([[1, $opt_revision_head]]),
+          [ 1..$current_rev ], 'list of [start, end]');
+# TEST
+is_deeply(get_revs($bottom), 
+          [ 1..$current_rev-1 ], 'single svn_opt_revision_range_t');
+# TEST
+is_deeply(get_revs([$bottom]), 
+          [ 1..$current_rev-1 ], 'list of svn_opt_revision_range_t');
+# TEST
+is_deeply(get_revs([1, $current_rev-1]),
+          [ 1..$current_rev-1 ], 'single [start, end]');
+# TEST
+is_deeply(get_revs([[1, $current_rev-1]]),
+          [ 1..$current_rev-1 ], 'list of [start, end]');
+# TEST
+is_deeply(get_revs([[1, $current_rev-1], $top]),
+          [ 1..$current_rev ], 'mixed list of ranges');
+# TEST
+is_deeply(get_revs([$bottom, ['HEAD', 'HEAD']]),
+          [ 1..$current_rev ], 'mixed list of ranges');
+# TEST
+is_deeply(get_revs([$bottom, $top]),
+          [ 1..$current_rev ], 'mixed list of ranges');
+          
+
+# TEST
 is($ctx->update($wcpath,'HEAD',1),$current_rev,
    'Return from update is the current rev');
 
@@ -546,8 +647,7 @@ is($ctx->status($wcpath, undef, sub {
                                          ' the correct path.');
                                       # TEST
                                       isa_ok($wc_status,'_p_svn_wc_status_t',
-                                             'wc_stats param is a' .
-                                             ' _p_svn_wc_status_t');
+                                             'wc_stats param');
                                       # TEST
                                       is($wc_status->text_status(),
                                          $SVN::Wc::Status::normal,
@@ -868,7 +968,7 @@ my($pl) = $ctx->proplist($reposurl,$curr
 isa_ok($pl,'ARRAY','proplist returns an ARRAY');
 # TEST
 isa_ok($pl->[0], '_p_svn_client_proplist_item_t',
-       'array element is a _p_svn_client_proplist_item_t');
+       'proplist array element');
 # TEST
 is($pl->[0]->node_name(),"$reposurl/dir1",
    'node_name is the expected value');
@@ -959,8 +1059,7 @@ is($ctx->blame("$reposurl/foo",'HEAD','H
                                               }
                                               # TEST
                                               isa_ok($pool,'_p_apr_pool_t',
-                                                     'pool param is ' .
-                                                     '_p_apr_pool_t');
+                                                     'pool param');
                                             }),
    undef,
    'blame returns undef');
@@ -987,7 +1086,7 @@ my ($dirents) = $ctx->ls($reposurl,"$cur
 isa_ok($dirents, 'HASH','ls returns a HASH');
 # TEST
 isa_ok($dirents->{'dir1'},'_p_svn_dirent_t',
-       'hash value is a _p_svn_dirent_t');
+       'dirents hash value');
 # TEST
 is($dirents->{'dir1'}->kind(),$SVN::Core::node_dir,
    'kind() returns a dir node');

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Tue Jun 11 11:49:27 2013
@@ -735,7 +735,9 @@ svn_swig_rb_get_pool(int argc, VALUE *ar
 static svn_boolean_t
 rb_set_pool_if_swig_type_object(VALUE target, VALUE pool)
 {
-  VALUE targets[1] = {target};
+  VALUE targets[1];
+  
+  targets[0] = target;
 
   if (!NIL_P(find_swig_type_object(1, targets))) {
     rb_set_pool(target, pool);
@@ -1530,15 +1532,14 @@ r2c_hash(VALUE hash, r2c_func func, void
     return NULL;
   } else {
     apr_hash_t *apr_hash;
-    hash_to_apr_hash_data_t data = {
-      NULL,
-      func,
-      ctx,
-      pool
-    };
+    hash_to_apr_hash_data_t data;
 
     apr_hash = apr_hash_make(pool);
     data.apr_hash = apr_hash;
+    data.ctx = ctx;
+    data.func = func;
+    data.pool = pool;
+
     rb_hash_foreach(hash, r2c_hash_i, (VALUE)&data);
 
     return apr_hash;
@@ -1637,8 +1638,9 @@ invoke_callback(VALUE baton, VALUE pool)
 {
   callback_baton_t *cbb = (callback_baton_t *)baton;
   VALUE sub_pool;
-  VALUE argv[] = {pool};
+  VALUE argv[1];
 
+  argv[0] = pool;
   svn_swig_rb_get_pool(1, argv, Qnil, &sub_pool, NULL);
   cbb->pool = sub_pool;
   return rb_ensure(callback, baton, callback_ensure, sub_pool);

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h Tue Jun 11 11:49:27 2013
@@ -74,7 +74,12 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/* Ruby 1.9 changed the file name of this header */
+#ifdef HAVE_RUBY_IO_H
+#include <ruby/io.h>
+#else
 #include <rubyio.h>
+#endif
 
 typedef struct apr_pool_wrapper_t
 {

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/greek_tree.rb
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/greek_tree.rb?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/greek_tree.rb (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/greek_tree.rb Tue Jun 11 11:49:27 2013
@@ -47,15 +47,16 @@ module SvnTestUtil
       const_set(path.split("/").last.upcase, path)
     end
 
-    def initialize(tmp_path, wc_path, repos_uri)
+    def initialize(tmp_path, import_path, wc_path, repos_uri)
       @tmp_path = tmp_path
+      @import_path = import_path
       @wc_path = wc_path
       @repos_uri = repos_uri
     end
 
     def setup(context)
       TREE.each do |path, contents|
-        entry = File.expand_path(File.join(@tmp_path, path))
+        entry = File.expand_path(File.join(@import_path, path))
         if contents
           File.open(entry, 'w') {|f| f.print(contents)}
         else
@@ -63,7 +64,7 @@ module SvnTestUtil
         end
       end
 
-      context.import(@tmp_path, @repos_uri)
+      context.import(@import_path, @repos_uri)
       context.update(@wc_path)
     end
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/test_client.rb?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/test_client.rb Tue Jun 11 11:49:27 2013
@@ -334,7 +334,7 @@ class SvnClientTest < Test::Unit::TestCa
     file = "sample.txt"
     deep_dir_path = File.join(@wc_path, deep_dir)
     path = File.join(deep_dir_path, file)
-    tmp_deep_dir_path = File.join(@tmp_path, deep_dir)
+    tmp_deep_dir_path = File.join(@import_path, deep_dir)
     tmp_path = File.join(tmp_deep_dir_path, file)
 
     make_context(log) do |ctx|
@@ -342,7 +342,7 @@ class SvnClientTest < Test::Unit::TestCa
       FileUtils.mkdir_p(tmp_deep_dir_path)
       File.open(tmp_path, "w") {|f| f.print(src)}
 
-      ctx.import(@tmp_path, @repos_uri)
+      ctx.import(@import_path, @repos_uri)
 
       ctx.up(@wc_path)
       assert_equal(src, File.open(path){|f| f.read})
@@ -356,7 +356,7 @@ class SvnClientTest < Test::Unit::TestCa
     file = "sample.txt"
     deep_dir_path = File.join(@wc_path, deep_dir)
     path = File.join(deep_dir_path, file)
-    tmp_deep_dir_path = File.join(@tmp_path, deep_dir)
+    tmp_deep_dir_path = File.join(@import_path, deep_dir)
     tmp_path = File.join(tmp_deep_dir_path, file)
 
     make_context(log) do |ctx|
@@ -364,7 +364,7 @@ class SvnClientTest < Test::Unit::TestCa
       FileUtils.mkdir_p(tmp_deep_dir_path)
       File.open(tmp_path, "w") {|f| f.print(src)}
 
-      new_rev = ctx.import(@tmp_path, @repos_uri, true, false,
+      new_rev = ctx.import(@import_path, @repos_uri, true, false,
                            {"custom-prop" => "some-value"}).revision
       assert_equal(["some-value", new_rev],
                    ctx.revprop_get("custom-prop", @repos_uri, new_rev))

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb Tue Jun 11 11:49:27 2013
@@ -1,4 +1,4 @@
-# ====================================================================
+# ==================================================================== 
 #    Licensed to the Apache Software Foundation (ASF) under one
 #    or more contributor license agreements.  See the NOTICE file
 #    distributed with this work for additional information
@@ -19,7 +19,7 @@
 
 require "fileutils"
 require "pathname"
-require "svn/util"
+require "./svn/util"
 require "tmpdir"
 
 require "my-assertions"
@@ -43,19 +43,20 @@ module SvnTestUtil
 
     @tmp_path = Dir.mktmpdir
     @wc_path = File.join(@tmp_path, "wc")
-    @full_wc_path = File.expand_path(@wc_path)
+    @import_path = File.join(@tmp_path, "import")
     @repos_path = File.join(@tmp_path, "repos")
     @full_repos_path = File.expand_path(@repos_path)
     @repos_uri = "file://#{@full_repos_path.sub(/^\/?/, '/')}"
 
     @config_path = "config"
-    @greek = Greek.new(@tmp_path, @wc_path, @repos_uri)
+    @greek = Greek.new(@tmp_path, @import_path, @wc_path, @repos_uri)
   end
 
   def setup_basic(need_svnserve=false)
     @need_svnserve = need_svnserve
     setup_default_variables
     setup_tmp
+    setup_tmp(@import_path) 
     setup_repository
     add_hooks
     setup_svnserve if @need_svnserve

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/windows_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/windows_util.rb?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/windows_util.rb (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/windows_util.rb Tue Jun 11 11:49:27 2013
@@ -93,27 +93,62 @@ module SvnTestUtil
           %r'^\s*#define\s+APR_MAJOR_VERSION\s+(\d+)' =~ apr_version_include.read
           apr_major_version = $1 == '0' ? '' : "-#{$1}"
 
+          cwd = Dir.getwd
           targets = %W(svnserve.exe libsvn_subr-1.dll libsvn_repos-1.dll
                        libsvn_fs-1.dll libsvn_delta-1.dll
                        libaprutil#{apr_major_version}.dll
                        libapr#{apr_major_version}.dll
                        libapriconv#{apr_major_version}.dll
-                       libdb44.dll libdb44d.dll)
+                       libdb??.dll libdb??d.dll)
           ENV["PATH"].split(";").each do |path|
+
+            # Change the cwd to path, but ignore non-existent paths.
+            begin
+              Dir.chdir(path)
+            rescue Errno::ENOENT
+              next
+            end
+
             found_targets = []
             targets.each do |target|
-              target_path = "#{path}\\#{target}"
-              if File.exists?(target_path)
-                found_targets << target
-                FileUtils.cp(target_path, svnserve_dir)
+              matching_paths = Dir.glob(target)
+              matching_paths.each do |target_path|
+                target_path = File.join(path.tr('\\', '/'), target_path)
+                if File.exists?(target_path)
+                  found_targets << target
+                  retried = 0
+                  begin
+                    FileUtils.cp(target_path, svnserve_dir)
+                  rescue Errno::EACCES
+                    # On Windows the tests frequently fail spuriously with a
+                    # 'Errno::EACCES: Permission denied - svnserve.exe' error.
+                    # Sleeping for a few seconds avoids this.
+                    if retried > 5
+                      # Give up!
+                      raise
+                    else
+                      # Wait a sec...
+                      sleep(1)
+                      retried += 1
+                      retry
+                    end
+                  end
+                end
               end
             end
             targets -= found_targets
             break if targets.empty?
           end
+          Dir.chdir(cwd)
           # Remove optional targets instead of raising below.  If they are really
           # needed, svnserve won't start anyway.
           targets -= %W[libapriconv#{apr_major_version}.dll]
+          # Ditto these four, since svnserve.exe might be a static build.
+          targets -= %W[libsvn_subr-1.dll]
+          targets -= %W[libsvn_repos-1.dll]
+          targets -= %W[libsvn_fs-1.dll]
+          targets -= %W[libsvn_delta-1.dll]
+
           unless targets.empty?
             raise "can't find libraries to work svnserve: #{targets.join(' ')}"
           end
@@ -194,7 +229,8 @@ exit 1
         @gen_make_opts ||= begin
           lines = []
           gen_make_opts = File.join(@@top_dir, "gen-make.opts")
-          lines = File.read(gen_make_opts).to_a if File.exists?(gen_make_opts)
+          lines =
+            File.read(gen_make_opts).lines.to_a if File.exists?(gen_make_opts)
           config = Hash.new do |hash, key|
             if /^--with-(.*)$/ =~ key
               hash[key] = File.join(@@top_dir, $1)

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/svn_client.i
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/svn_client.i?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/svn_client.i (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/svn_client.i Tue Jun 11 11:49:27 2013
@@ -64,12 +64,10 @@
 }
 #endif
 
-#if defined(SWIGRUBY) || defined(SWIGPYTHON)
 %apply apr_array_header_t *REVISION_RANGE_LIST {
   const apr_array_header_t *ranges_to_merge,
   const apr_array_header_t *revision_ranges
 }
-#endif
 
 #ifdef SWIGRUBY
 %apply const char *NOT_NULL {

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/mod_authz_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/mod_authz_svn.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/mod_authz_svn.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/mod_authz_svn.h Tue Jun 11 11:49:27 2013
@@ -36,9 +36,20 @@ extern "C" {
 /*
  * mod_dav_svn to mod_authz_svn bypass mechanism
  */
+/** Provider group for subrequest bypass */
 #define AUTHZ_SVN__SUBREQ_BYPASS_PROV_GRP "dav2authz_subreq_bypass"
+/** Provider name for subrequest bypass */
 #define AUTHZ_SVN__SUBREQ_BYPASS_PROV_NAME "mod_authz_svn_subreq_bypass"
+/** Provider version for subrequest bypass */
 #define AUTHZ_SVN__SUBREQ_BYPASS_PROV_VER "00.00a"
+/** Provider to allow mod_dav_svn to bypass the generation of an apache
+ * request when checking GET access from "mod_dav_svn/auth.c".
+ *
+ * Uses @a r @a repos_path and @a repos_name to determine if the user
+ * making the request is authorized.
+ *
+ * If the access is allowed returns @c OK or @c HTTP_FORBIDDEN if it is not.
+ */
 typedef int (*authz_svn__subreq_bypass_func_t)(request_rec *r,
                                               const char *repos_path,
                                               const char *repos_name);

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_auth.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_auth.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_auth.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_auth.h Tue Jun 11 11:49:27 2013
@@ -569,11 +569,11 @@ svn_auth_get_parameter(svn_auth_baton_t 
 
 /**
  * @name Default credentials defines
- * Any 'default' credentials that came in through the application itself,
- * (e.g. --username and --password options). Property values are
- * const char *.
+ * Property values are const char *.
  * @{ */
+/** Default username provided by the application itself (e.g. --username) */
 #define SVN_AUTH_PARAM_DEFAULT_USERNAME  SVN_AUTH_PARAM_PREFIX "username"
+/** Default password provided by the application itself (e.g. --password) */
 #define SVN_AUTH_PARAM_DEFAULT_PASSWORD  SVN_AUTH_PARAM_PREFIX "password"
 /** @} */
 
@@ -628,9 +628,15 @@ svn_auth_get_parameter(svn_auth_baton_t 
 #define SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO SVN_AUTH_PARAM_PREFIX \
   "ssl:cert-info"
 
-/** Some providers need access to the @c svn_config_t configuration. */
-#define SVN_AUTH_PARAM_CONFIG_CATEGORY_CONFIG SVN_AUTH_PARAM_PREFIX "config-category-config"
-#define SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS SVN_AUTH_PARAM_PREFIX "config-category-servers"
+/** This provides a pointer to a @c svn_config_t containting the config
+ * category. */
+#define SVN_AUTH_PARAM_CONFIG_CATEGORY_CONFIG SVN_AUTH_PARAM_PREFIX \
+  "config-category-config"
+
+/** This provides a pointer to a @c svn_config_t containting the servers
+ * category. */
+#define SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS SVN_AUTH_PARAM_PREFIX \
+  "config-category-servers"
 
 /** @deprecated Provided for backward compatibility with the 1.5 API. */
 #define SVN_AUTH_PARAM_CONFIG SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_config.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_config.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_config.h Tue Jun 11 11:49:27 2013
@@ -247,7 +247,7 @@ svn_config_create(svn_config_t **cfgp,
  * otherwise return an empty @c svn_config_t.
  *
  * If @a section_names_case_sensitive is @c TRUE, populate section name hashes
- * case sensitively, except for the default #SVN_CONFIG__DEFAULT_SECTION.
+ * case sensitively, except for the @c "DEFAULT" section.
  *
  * If @a option_names_case_sensitive is @c TRUE, populate option name hashes
  * case sensitively.
@@ -292,7 +292,7 @@ svn_config_read(svn_config_t **cfgp,
  * @a result_pool.
  *
  * If @a section_names_case_sensitive is @c TRUE, populate section name hashes
- * case sensitively, except for the default #SVN_CONFIG__DEFAULT_SECTION.
+ * case sensitively, except for the @c "DEFAULT" section.
  *
  * If @a option_names_case_sensitive is @c TRUE, populate option name hashes
  * case sensitively.

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_error.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_error.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_error.h Tue Jun 11 11:49:27 2013
@@ -439,7 +439,7 @@ svn_error_t *svn_error_purge_tracing(svn
    err->apr_err == SVN_ERR_RA_NOT_LOCKED ||                 \
    err->apr_err == SVN_ERR_FS_LOCK_EXPIRED)
 
-/** Evaluates to @c TRUE iff @a apr_err (of type #apr_status_t) is in the given
+/** Evaluates to @c TRUE iff @a apr_err (of type apr_status_t) is in the given
  * @a category, which should be one of the @c SVN_ERR_*_CATEGORY_START
  * constants.
  *
@@ -491,22 +491,10 @@ svn_error_t *svn_error_purge_tracing(svn
     abort();                                                 \
   } while (1)
 
-/** Check that a condition is true: if not, report an error (appending
- * ERR if non-NULL) and possibly terminate the program.
+/** Like SVN_ERR_ASSERT(), but append ERR to the returned error chain.
  *
- * If the boolean expression @a expr is true, do nothing. Otherwise,
- * act as determined by the current "malfunction handler" which may have
- * been specified by a call to svn_error_set_malfunction_handler() or else
- * is the default handler as specified in that function's documentation. If
- * the malfunction handler returns, then cause the function using this macro
- * to return the error object that it generated.
- *
- * @note The intended use of this macro is to check a condition that cannot
- * possibly be false unless there is a bug in the program.
- *
- * @note The condition to be checked should not be computationally expensive
- * if it is reached often, as, unlike traditional "assert" statements, the
- * evaluation of this expression is not compiled out in release-mode builds.
+ * If EXPR is false, return a malfunction error whose chain includes ERR.
+ * If EXPR is true, do nothing.  (In particular, this does not clear ERR.)
  *
  * Types: (svn_boolean_t expr, svn_error_t *err)
  *
@@ -527,13 +515,38 @@ svn_error_t *svn_error_purge_tracing(svn
   } while (0)
 #endif
 
-/** Like SVN_ERR_ASSERT_E(), but with @a err always NULL.
+
+/** Check that a condition is true: if not, report an error and possibly
+ * terminate the program.
  *
- * @see SVN_ERR_ASSERT_E()
+ * If the Boolean expression @a expr is true, do nothing. Otherwise,
+ * act as determined by the current "malfunction handler" which may have
+ * been specified by a call to svn_error_set_malfunction_handler() or else
+ * is the default handler as specified in that function's documentation. If
+ * the malfunction handler returns, then cause the function using this macro
+ * to return the error object that it generated.
+ *
+ * @note The intended use of this macro is to check a condition that cannot
+ * possibly be false unless there is a bug in the program.
+ *
+ * @note The condition to be checked should not be computationally expensive
+ * if it is reached often, as, unlike traditional "assert" statements, the
+ * evaluation of this expression is not compiled out in release-mode builds.
  *
  * @since New in 1.6.
+ *
+ * @see SVN_ERR_ASSERT_E()
  */
-#define SVN_ERR_ASSERT(expr)       SVN_ERR_ASSERT_E(expr, NULL)
+#ifdef __clang_analyzer__
+#include <assert.h>
+#define SVN_ERR_ASSERT(expr)       assert((expr))
+#else
+#define SVN_ERR_ASSERT(expr)                                            \
+  do {                                                                  \
+    if (!(expr))                                                        \
+      SVN_ERR(svn_error__malfunction(TRUE, __FILE__, __LINE__, #expr)); \
+  } while (0)
+#endif
 
 /** Similar to SVN_ERR_ASSERT(), but without the option of returning
  * an error to the calling function.

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_hash.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_hash.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_hash.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_hash.h Tue Jun 11 11:49:27 2013
@@ -240,14 +240,14 @@ svn_hash_from_cstring_keys(apr_hash_t **
                            const apr_array_header_t *keys,
                            apr_pool_t *pool);
 
-/* Shortcut for apr_hash_get() with a const char * key.
+/** Shortcut for apr_hash_get() with a const char * key.
  *
  * @since New in 1.8.
  */
 #define svn_hash_gets(ht, key) \
             apr_hash_get(ht, key, APR_HASH_KEY_STRING)
 
-/* Shortcut for apr_hash_set() with a const char * key.
+/** Shortcut for apr_hash_set() with a const char * key.
  *
  * @since New in 1.8.
  */

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_repos.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_repos.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_repos.h Tue Jun 11 11:49:27 2013
@@ -69,8 +69,11 @@ enum svn_node_action
 /** The different policies for processing the UUID in the dumpfile. */
 enum svn_repos_load_uuid
 {
+  /** only update uuid if the repos has no revisions. */
   svn_repos_load_uuid_default,
+  /** never update uuid. */
   svn_repos_load_uuid_ignore,
+  /** always update uuid. */
   svn_repos_load_uuid_force
 };
 
@@ -3309,8 +3312,14 @@ svn_repos_authz_check_access(svn_authz_t
  */
 typedef enum svn_repos_revision_access_level_t
 {
+  /** no access allowed to the revision properties and all changed-paths
+   * information. */ 
   svn_repos_revision_access_none,
+  /** access granted to some (svn:date and svn:author) revision properties and
+   * changed-paths information on paths the read has access to. */
   svn_repos_revision_access_partial,
+  /** access granted to all revision properites and changed-paths
+   * information. */
   svn_repos_revision_access_full
 }
 svn_repos_revision_access_level_t;

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_types.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_types.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_types.h Tue Jun 11 11:49:27 2013
@@ -72,10 +72,16 @@ extern "C" {
  * Unaligned access on other machines (e.g. IA64) will trigger memory
  * access faults or simply misbehave.
  *
+ * Note: Some platforms may only support unaligned access for integers
+ * (PowerPC).  As a result this macro should only be used to determine
+ * if unaligned access is supported for integers.
+ *
  * @since New in 1.7.
  */
 #ifndef SVN_UNALIGNED_ACCESS_IS_OK
-# if defined(_M_IX86) || defined(_M_X64) || defined(i386) || defined(__x86_64)
+# if defined(_M_IX86) || defined(i386) \
+     || defined(_M_X64) || defined(__x86_64) \
+     || defined(__powerpc__) || defined(__ppc__)
 #  define SVN_UNALIGNED_ACCESS_IS_OK 1
 # else
 #  define SVN_UNALIGNED_ACCESS_IS_OK 0
@@ -270,8 +276,11 @@ svn_node_kind_from_word(const char *word
  * @since New in 1.7. */
 typedef enum svn_tristate_t
 {
+  /** state known to be false (the constant does not evaulate to false) */
   svn_tristate_false = 2,
+  /** state known to be true */
   svn_tristate_true,
+  /** state could be true or false */
   svn_tristate_unknown
 } svn_tristate_t;
 

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_wc.h?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_wc.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_wc.h Tue Jun 11 11:49:27 2013
@@ -8132,17 +8132,17 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
  *
  * If @a show_hidden and @a show_deleted are both @c FALSE, the kind of
  * scheduled for delete, administrative only 'not present' and excluded
- * nodes is reported as #svn_node_kind_node. This is recommended as a check
+ * nodes is reported as #svn_node_none. This is recommended as a check
  * for 'is there a versioned file or directory here?'
  *
  * If @a show_deleted is FALSE, but @a show_hidden is @c TRUE then only
  * scheduled for delete and administrative only 'not present' nodes are
- * reported as #svn_node_kind_none. This is recommended as check for
+ * reported as #svn_node_none. This is recommended as check for
  * 'Can I add a node here?'
  *
  * If @a show_deleted is TRUE, but @a show_hidden is FALSE, then only
  * administrative only 'not present' nodes and excluded nodes are reported as
- * #svn_node_kind_none. This behavior is the behavior bescribed as 'hidden'
+ * #svn_node_none. This behavior is the behavior bescribed as 'hidden'
  * before Subversion 1.7.
  *
  * If @a show_hidden and @a show_deleted are both @c TRUE all nodes are

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c Tue Jun 11 11:49:27 2013
@@ -2753,7 +2753,7 @@ merge_dir_opened(void **new_dir_baton,
               SVN_ERR(svn_wc_add4(merge_b->ctx->wc_ctx, local_abspath,
                                   svn_depth_infinity,
                                   original_url,
-                                  merge_b->merge_source.loc2->rev,
+                                  right_source->revision,
                                   merge_b->ctx->cancel_func,
                                   merge_b->ctx->cancel_baton,
                                   NULL, NULL /* no notify! */,
@@ -2953,7 +2953,7 @@ merge_dir_added(const char *relpath,
 
       copyfrom_url = svn_path_url_add_component2(merge_b->merge_source.loc2->url,
                                                  child, scratch_pool);
-      copyfrom_rev = merge_b->merge_source.loc2->rev;
+      copyfrom_rev = right_source->revision;
 
       SVN_ERR(check_repos_match(merge_b->target, parent_abspath, copyfrom_url,
                                 scratch_pool));
@@ -12301,6 +12301,12 @@ find_automatic_merge(svn_client__pathrev
   SVN_ERR(svn_client__get_youngest_common_ancestor(
             &s_t->yca, s_t->source, &s_t->target->loc, s_t->source_ra_session,
             ctx, result_pool, result_pool));
+  if (! s_t->yca)
+    return svn_error_createf(SVN_ERR_CLIENT_NOT_READY_TO_MERGE, NULL,
+                             _("'%s@%ld' must be ancestrally related to "
+                               "'%s@%ld'"),
+                             s_t->source->url, s_t->source->rev,
+                             s_t->target->loc.url, s_t->target->loc.rev);
 
   /* Find the latest revision of A synced to B and the latest
    * revision of B synced to A.
@@ -12409,14 +12415,15 @@ client_find_automatic_merge(automatic_me
   source_and_target_t *s_t = apr_palloc(result_pool, sizeof(*s_t));
   automatic_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
 
-  /* "Open" the target WC.  We're not going to check the target WC for
-   * mixed-rev, local mods or switched subtrees yet.  After we find out
-   * what kind of merge is required, then if a reintegrate-like merge is
-   * required we'll do the stricter checks, in do_automatic_merge_locked(). */
+  /* "Open" the target WC.  Check the target WC for mixed-rev, local mods and
+   * switched subtrees yet to faster exit and notify user before contacting
+   * with server.  After we find out what kind of merge is required, then if a
+   * reintegrate-like merge is required we'll do the stricter checks, in
+   * do_automatic_merge_locked(). */
   SVN_ERR(open_target_wc(&s_t->target, target_abspath,
-                         TRUE /*allow_mixed_rev*/,
-                         TRUE /*allow_local_mods*/,
-                         TRUE /*allow_switched_subtrees*/,
+                         allow_mixed_rev,
+                         allow_local_mods,
+                         allow_switched_subtrees,
                          ctx, result_pool, scratch_pool));
 
   /* Open RA sessions to the source and target trees. */

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_diff/parse-diff.c?rev=1491757&r1=1491756&r2=1491757&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_diff/parse-diff.c Tue Jun 11 11:49:27 2013
@@ -1146,8 +1146,9 @@ svn_diff_open_patch_file(svn_patch_file_
   svn_patch_file_t *p;
 
   p = apr_palloc(result_pool, sizeof(*p));
-  SVN_ERR(svn_io_file_open(&p->apr_file, local_abspath, APR_READ,
-                           APR_OS_DEFAULT, result_pool));
+  SVN_ERR(svn_io_file_open(&p->apr_file, local_abspath,
+                           APR_READ | APR_BUFFERED, APR_OS_DEFAULT,
+                           result_pool));
   p->next_patch_offset = 0;
   *patch_file = p;
 



Mime
View raw message