You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/09/11 18:54:21 UTC

svn commit: r1521935 [1/6] - in /subversion/branches/1.7.x-issue4153: ./ build/ac-macros/ contrib/hook-scripts/ doc/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ subversion/bindings/javahl/src/or...

Author: breser
Date: Wed Sep 11 16:54:18 2013
New Revision: 1521935

URL: http://svn.apache.org/r1521935
Log:
Do a syncup merge on the 1.7.x-issue4153 branch.

Modified:
    subversion/branches/1.7.x-issue4153/   (props changed)
    subversion/branches/1.7.x-issue4153/CHANGES   (contents, props changed)
    subversion/branches/1.7.x-issue4153/STATUS
    subversion/branches/1.7.x-issue4153/autogen.sh
    subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4
    subversion/branches/1.7.x-issue4153/configure.ac
    subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl
    subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl
    subversion/branches/1.7.x-issue4153/doc/doxygen.conf
    subversion/branches/1.7.x-issue4153/get-deps.sh
    subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java
    subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java
    subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i
    subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/1.7.x-issue4153/subversion/include/private/svn_adler32.h   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h
    subversion/branches/1.7.x-issue4153/subversion/include/private/svn_string_private.h   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/include/private/svn_temp_serializer.h   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h
    subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/delete.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/externals.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/merge.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/repos_diff_summarize.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/status.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_client/update.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_diff/diff_file.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_diff/parse-diff.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs/fs-loader.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/temp_serializer.c   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/temp_serializer.h   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/tree.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/fetch.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/props.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/ra_neon.h
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/util.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/commit.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/options.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/util.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_svn/client.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/authz.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/dump.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/load-fs-vtable.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/adler32.c   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/hash.c   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/io.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/macos_keychain.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/nls.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/opt.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/simple_providers.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/subst.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_base64.c   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_cache_config.c   (contents, props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_temp_serializer.c   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_ops.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/diff_editor.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/diff_local.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/util.c
    subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/deadprops.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/liveprops.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/lock.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/mirror.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/log.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c
    subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c
    subversion/branches/1.7.x-issue4153/subversion/po/es.po
    subversion/branches/1.7.x-issue4153/subversion/po/pt_BR.po
    subversion/branches/1.7.x-issue4153/subversion/po/zh_CN.po
    subversion/branches/1.7.x-issue4153/subversion/po/zh_TW.po
    subversion/branches/1.7.x-issue4153/subversion/svn/log-cmd.c
    subversion/branches/1.7.x-issue4153/subversion/svn/main.c   (contents, props changed)
    subversion/branches/1.7.x-issue4153/subversion/svnrdump/load_editor.c
    subversion/branches/1.7.x-issue4153/subversion/svnrdump/svnrdump.h
    subversion/branches/1.7.x-issue4153/subversion/svnrdump/util.c
    subversion/branches/1.7.x-issue4153/subversion/svnserve/main.c   (contents, props changed)
    subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/authz_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/basic_tests.py   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/blame_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/diff_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/patch_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/revert_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/special_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/   (props changed)
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/update_tests.py
    subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_subr/dirent_uri-test.c
    subversion/branches/1.7.x-issue4153/tools/client-side/svnmucc/svnmucc.c   (contents, props changed)

Propchange: subversion/branches/1.7.x-issue4153/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.7.x-r1475724:r1475743-1482192
  Merged /subversion/branches/1.7.x:r1392817-1521932
  Merged /subversion/branches/1.7.x-r1352031:r1431725-1435017
  Merged /subversion/branches/1.7.x-r1482759:r1483584-1485046
  Merged /subversion/branches/1.7.x-issue4257:r1454456-1461404
  Merged /subversion/branches/1.7.x-r1427278:r1433724-1485338
  Merged /subversion/branches/1.7.x-issue4270:r1433737-1485341
  Merged /subversion/branches/1.7.x-issue4306:r1438872-1514941
  Merged /subversion/branches/1.7.x-r1388975:r1392898-1393044
  Merged /subversion/branches/1.7.x-gssapi-solaris10:r1453164-1515067
  Merged /subversion/branches/1.7.x-r1242759:r1372522-1393041
  Merged /subversion/branches/1.7.x-issue4340:r1461589-1485180
  Merged /subversion/trunk:r1237779,1242759,1242770,1242794,1295418,1344864-1344865,1344869,1345740,1351117,1352031,1380175,1382843,1383466,1383946,1388975,1389851,1389878,1390653,1392502,1392599,1393061,1393156,1393165,1393542,1393551,1393598,1394519,1396285,1398100,1399174,1401915,1402417,1402421,1403258,1403583,1403588,1403691,1403964,1403982,1405922,1407131,1407812,1408650,1409146,1409939,1410106,1410203,1419670-1419681,1421011,1421103,1421380,1421541,1422053,1422100,1423585,1423646,1423837,1423840,1423848,1424977,1425368,1426138,1426264,1426752,1426830,1427197,1427210,1427278,1429201,1434128,1434405,1434414,1434418,1434435,1434476,1434750,1435361,1438602,1438683,1441810,1443763,1443929,1445753,1451678,1452617,1452780,1452967,1453780,1454088,1454217,1455352,1458341,1459599,1461278,1461562,1461580,1461701,1461743,1462293,1462300,1462302,1462321,1462334,1465975,1476359,1477730,1481010,1481627,1482282,1483781,1485350,1490684,1503528,1507044,1512432,1512471-1512472,1513463,1513472,15
 14763,1515119,1515237,1515992,1515997,1516023-1516024,1516051-1516052,1516565
  Merged /subversion/branches/1.7.x-r1423646:r1423647-1424282
  Merged /subversion/branches/1.7.x-r1389851:r1389853-1392834
  Merged /subversion/branches/1.7.x-r1401915:r1401934-1407349
  Merged /subversion/branches/1.7.x-r1407131:r1407164-1419607
  Merged /subversion/branches/1.7.x-r1426752:r1426753-1485335
  Merged /subversion/branches/1.7.x-r1481010:r1481034-1482194
  Merged /subversion/branches/1.7.x-issue4408:r1512143-1514943
  Merged /subversion/branches/1.7.x-neon-properr:r1440619-1461944
  Merged /subversion/branches/1.7.x-r1389878:r1389879-1393126
  Merged /subversion/branches/1.7.x-issue4263:r1423588-1434547
  Merged /subversion/branches/1.7.x-r1398325:r1398353-1398633
  Merged /subversion/branches/1.7.x-r1507044:r1507300-1511568
  Merged /subversion/branches/1.7.x-r1461743:r1461745-1482189
  Merged /subversion/branches/1.7.x-r1399174:r1399176-1403964
  Merged /subversion/branches/1.7.x-issue4332:r1453478-1460963

Modified: subversion/branches/1.7.x-issue4153/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/CHANGES?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/CHANGES (original)
+++ subversion/branches/1.7.x-issue4153/CHANGES Wed Sep 11 16:54:18 2013
@@ -1,3 +1,197 @@
+Version 1.7.13
+(29 Aug 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.13
+
+ User-visible changes:
+  - General
+    * merge: fix bogus mergeinfo with conflicting file merges (issue #4306)
+    * diff: fix duplicated path component in '--summarize' output (issue #4408)
+    * ra_serf: ignore case when checking certificate common names (r1514763)
+
+  - Server-side bugfixes:
+    * svnserve: fix creation of pid files (r1516556)
+    * mod_dav_svn: better status codes for commit failures (r1490684)
+    * mod_dav_svn: do not map requests to filesystem (r1512432 et al)
+
+ Developer-visible changes:
+  - General:
+    * support linking against gssapi on Solaris 10 (r1515068)
+    * don't use uninitialized variable to produce an error code (r1482282)
+
+  - Bindings:
+    * swig-pl: fix SVN::Client not honoring config file settings (r150744)
+    * swig-pl & swig-py: disable unusable svn_fs_set_warning_func (r1515119)
+
+
+Version 1.7.12
+(Not released, see changes for 1.7.13.)
+ 
+ 
+Version 1.7.11
+(23 Jul 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.11
+
+ User-visible changes:
+  - General
+    * translation updates for Simplified Chinese
+
+  - Server-side bugfixes:
+    * mod_dav_svn: fix incorrect path canonicalization (r1503528)
+            See CVE-2013-4131, and descriptive advisory at
+            http://subversion.apache.org/security/CVE-2013-4131-advisory.txt
+
+  - Other tool improvements and bugfixes:
+    * fix argument processing in contrib hook scripts (r1485350)
+            See CVE-2013-2088, and descriptive advisory at
+            http://subversion.apache.org/security/CVE-2013-2088-advisory.txt
+
+ Developer-visible changes:
+  - Bindings:
+    * javahl: fix bug in error constructing code (r1405922)
+
+
+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)
+            See CVE-2013-1968, and descriptive advisory at
+            http://subversion.apache.org/security/CVE-2013-1968-advisory.txt
+    * fix svnserve exiting when a client connection is aborted (r1482759)
+            See CVE-2013-2112, and descriptive advisory at
+            http://subversion.apache.org/security/CVE-2013-2112-advisory.txt
+    * 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
+ User-visible changes
+  - Client-side bugfixes:
+    * improved error messages about svn:date and svn:author props. (r1440620)
+    * fix local_relpath assertion (issue #4257)
+    * fix memory leak in `svn log` over svn:// (r1458341)
+    * fix incorrect authz failure when using neon http library (issue #4332)
+    * fix segfault when using kwallet (r1421103)
+    
+  - Server-side bugfixes:
+      See CVE-2013-1845, CVE-2013-1846, CVE-2013-1847, CVE-2013-1849,
+      and CVE-2013-1884, and descriptive advisories at
+            http://subversion.apache.org/security/
+    * svnserve will log the replayed rev not the low-water rev. (r1461278)
+    * mod_dav_svn will omit some property values for activity urls (r1453780)
+    * fix an assertion in mod_dav_svn when acting as a proxy on / (issue #4272)
+    * improve memory usage when committing properties in mod_dav_svn (r1443929)
+    * fix svnrdump to load dump files with non-LF line endings (issue #4263)
+    * fix assertion when rep-cache is inaccessible (r1422100)
+    * improved logic in mod_dav_svn's implementation of lock. (r1455352)
+    * avoid executing unnecessary code in log with limit (r1459599)
+
+ Developer-visible changes:
+  - General:
+    * fix an assertion in dav_svn_get_repos_path() on Windows (r1425368)
+    * fix get-deps.sh to correctly download zlib (r13520131)
+    * doxygen docs will now ignore prefixes when producing the index (r1429201)
+    * fix get-deps.sh on freebsd (r1423646)
+
+  - Bindings:
+    * javahl status api now respects the ignoreExternals boolean (r1435361)
+
+
+Version 1.7.8
+(17 Dec 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.8
+ User-visible changes
+  - Client- and server-side bugfixes:
+    * Fix typos in pt_BR, es and zh_TW translations (r1402417, r1402421)
+
+  - Client-side bugfixes:
+    * fix crash with --username option on Windows (r1396285)
+    * add missing attributes to "svn log -v --xml" output (r1398100)
+    * fix svn patch ignoring hunks after no trailing newline (r1399174)
+    * fix hang with ra_serf during error processing (r1403583)
+    * ignore file externals with mergeinfo when merging (r1401915)
+    * fix "svnmucc cp" segfault with a missing last argument (issue #4079)
+    * fix conflict handling on symlinks (issue #4091)
+    
+  - Server-side bugfixes:
+    * properly detect threading availability (r1398325)
+    * fix "svnadmin load --bypass-prop-validation" (r1237779)
+    * fix parsing of [groupsfoo] sections in authz file (issue #3531)
+    * add Vary: header to GET responses to improve cacheability (r1390653)
+    * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+    * fix mod_dav_svn to complain about revisions > HEAD (r1403588)
+
+ Developer-visible changes:
+  - General:
+    * fix incorrect status returned by 1.6 API (r1403258)
+    * fix compilation with g++ 4.7 (r1345740)
+    * fix svn_uri_get_file_url_from_dirent on Windows (r1409146)
+
+
+Version 1.7.7
+(09 Oct 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.7
+ User-visible changes
+  - Client- and server-side bugfixes:
+    * fix memory read bug (r137614)
+    * update Chinese translation
+
+  - Client-side bugfixes:
+    * fix issues with applying Git patch files (r1374800, et al)
+    * fix status does not descend into dir externals after upgrade (issue #4016)
+    * fix file externals don't update with old mod_dav_svn (issue #4224)
+    * fix external diff tool duplicates Index: lines with 'svn diff' (r1380697)
+    * fix GNOME keyring library fails with very old glib (r1378847)
+    * fix unknown password stores in config file cause error (r1375052)
+    * fix assertions in ra_serf running against server root (r1365519, et al)
+    * fix ra_serf checkout/export aborts early on Windows (issue #4174)
+ 
+  - Server-side bugfixes:
+    * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+    * fix unbounded memory use with SVNPathAuthz short_circuit (r1387943)
+    * fix svndumpfilter exclude --targets requires leading slash (issue #4234)
+    * fix connection ttl for memcache should be 50 seconds (r1391641)
+    * stabilize order of paths in dumpfiles with APR 1.4.6 (r1344864, et al)
+
+ Developer-visible changes:
+  - General:
+    * print "All tests successful" at the end of 'make check' (r1375089)
+    * fix sandbox violation in a test (r1371282)
+    * fix tests fail when running within a format 30 WC (r1391188, et al)
+    * fix return value of svn_client_update4() incorrect (r1380295)
+    * fix make check summary missing test failures (r1390965)
+    * fix build does not fail when apache httpd is not available (r1374198)
+
+  - Bindings:
+    * fix swig-pl build fails with swig 2.0.7 and newer. (r1389658)
+    * fix swig-py runtime problems with swig 2.0.5 and newer (r1351117)
+
+
 Version 1.7.6
 (15 Aug 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.6
@@ -8,7 +202,7 @@ http://svn.apache.org/repos/asf/subversi
   - Client-side bugfixes:
     * Fix "svn status -u --depth empty FILE" (r1348822, r1349215)
     * Fix example output of 'svn help status' (issue #3962)
-    * svn propset of svn:eol-style might not notice related text changes (r1353572)
+    * propset of svn:eol-style might not notice related text changes (r1353572)
     * sort output of 'svn propget -R' (r1355699)
     * sort output of 'svn proplist' (r1355698)
     * sort output of 'svn status' (r1341012)
@@ -437,6 +631,72 @@ 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)
+            See CVE-2013-2112, and descriptive advisory at
+            http://subversion.apache.org/security/CVE-2013-2112-advisory.txt
+
+  - 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
+
+ User-visible changes
+  - Server-side bugfixes:
+    * mod_dav_svn will omit some property values for activity urls (r1453780)
+    * improve memory usage when committing properties in mod_dav_svn (r1443929)
+    * fix mod_dav_svn runs pre-revprop-change twice (issue #3085)
+    * fixed: post-revprop-change errors cancel commit (issue #2990)
+    * improved logic in mod_dav_svn's implementation of lock. (r1455352)
+
+ Developer-visible changes:
+  - General:
+    * fix a compatibility issue with g++ 4.7 (r1345740)
+
+
+Version 1.6.20
+(04 Jan 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.20
+
+ User-visible changes
+  - Client- and server-side bugfixes:
+    * Fix typos in pt_BR, es and zh_TW translations (r1402417)
+
+  - Server-side bugfixes:
+    * add Vary: header to GET responses to improve cacheability (r1390653)
+    * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+    * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+
+
+Version 1.6.19
+(10 Sep 2012, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.19
+
+  - Client-side bugfixes:
+    * handle missing svn:date reported by svnserve gracefully (r1306111)
+
+  - Server-side bugfixes:
+    * fix possible server hang if a hook script fails to start (r1330410)
+    * fix write-through proxy commit regression introduced in 1.6.17 (r1088602)
+    * partial sync drops properties when converting to adds (issue #4184)
+
+  - Developer-visible changes:
+    * fix the testsuite to avoid FAILs on APR hash order (r1230714, et al)
+
+
 Version 1.6.18
 (29 Mar 2012, from /branches/1.6.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.6.18
@@ -554,7 +814,7 @@ http://svn.apache.org/repos/asf/subversi
    * improve some swig parameter mapping (r984565, r1035745)
    * improve test accuracy over dav (r991534, r877814)
    * create fails.log for test runs (r964349)
-   * improve detection of 'svnversion' when buildling (r877219, et al)
+   * improve detection of 'svnversion' when building (r877219, et al)
    * don't violate API layering in dumpstream logic (issue #3733)
    * don't report working copy installs as switched (r1033921)
 

Propchange: subversion/branches/1.7.x-issue4153/CHANGES
------------------------------------------------------------------------------
  Merged /subversion/trunk/CHANGES:r1370777-1485430,1485497,1485501,1485508,1503795,1503850,1515237,1515992,1515997,1516023-1516024,1516051-1516052,1516565
  Merged /subversion/branches/1.7.x-r1423646/CHANGES:r1423647-1424282
  Merged /subversion/branches/1.7.x/CHANGES:r1392817-1521932

Modified: subversion/branches/1.7.x-issue4153/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/STATUS?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/STATUS (original)
+++ subversion/branches/1.7.x-issue4153/STATUS Wed Sep 11 16:54:18 2013
@@ -10,25 +10,12 @@ See http://subversion.apache.org/docs/co
 for details on how release lines and voting work, what kinds of bugs can
 delay a release, etc.
 
-Status of 1.7.7:
+Status of 1.7.14:
 
 Candidate changes:
 ==================
 
- * r1242759, r1242770, r1242794, r1380175, r1392599
-   Fix various issues with GNOME and KDE keyring providers, especially
-   as regards how their interact with --non-interactive mode.  Fixes
-   issues #4110 ("kwallet not used with --non-interactive") and #4112
-   ("gnome keyring --non-interactive fail with password on disk").
-   Justification:
-     Fixes user-reported problem which significantly limits
-     usabilility in certain environments.
-   Branch:
-     ^/subversion/branches/1.7.x-r1242759
-   Votes:
-     +1: philip (without r1392599), cmpilato (without r1392599), breser
-
- * r1306275, and too many other revisions to list here
+ * r1306275, and other revisions
    New diff support code for added/deleted files and directories.
    Fixes issue #4153, "svn log --diff" on moved file gives "not found",
    and other problems.
@@ -39,6 +26,8 @@ Candidate changes:
      with the paradigm that the target of an editor drive may never have more
      than one path component (which according to cmpilato is an API violation).
    Notes:
+     Conflict in diff_tests.py can be interactively resolved with:
+       (m) merge -> 21 (your version first, then theirs) -> r (resolved)
      Please read the branch and related trunk log messages for detailed notes
      about these changes.
    Branch:
@@ -46,66 +35,133 @@ Candidate changes:
    Votes:
      +1: stsp
 
- * ^/subversion/branches/1.7.x-commit-performance
-   r1337118, r1337281, r1337374, r1337377, r1337392, r1337394, r1337485
-   Use the working copy status walker as a first filter to find committable
-   nodes.
-   Justification:
-     Huge performance boost. Especially on NFS.
+ * r1426762
+   Fix issue #4283, When the identical suffix starts at chunk boundary, "svn
+   diff" produces incorrect diff.
+   Justification:
+     Without this patch the identical suffix might show up as an added or
+     deleted suffix of a file.
+   Depends: (conflicts, doesn't compile)
    Notes:
-     Backports the status walker framework. Many other parts are backportable
-     too, but this branch delivers the plumbing.
-     [JAF] We might want to include some of the subsequent updates to this
-           code, such as: r1337403, r1337475, r1337736, r1338059, r1338338.
-   Votes:
-     +0: rhuijben (I would like to see some test results before backporting)
-
- * r1341060
-   Sort output of 'svn import'
-   Notes: Needs a backport branch, noted here for completeness.
-   Votes:
-     +0: stsp (pending a proper conflict-free backport)
-     -0: julianfoad (Nice behaviour enhancement but what's the justification
-            for back-porting this on its own without similar for other
-            commands?  The log msg says it was done to maintain stable output
-            with APR 1.4.6 random hash order, but it wasn't stable before
-            that because the order the directory entries were read into the
-            hash, and so the order of multiple keys in one bucket, was not
-            controlled.)
+     Will probably conflict if r1426752 and/or r1427278 are merged to
+     1.7.x, because they all add a test to the testlist in diff-diff3-test.c.
+   Votes:
+     +1: rhuijben, jcorvel
+     +0: stsp (doesn't compile, undefined reference to `svn_stringbuf_insert')
 
- * r1389851
-   Fix commit from multiple working copies nested within a parent WC.
+ * r1435635, r1435714, r1435722, r1435737
+   When svn update removes a switched subtree because it was deleted in the
+   target revision, it would be nice if a future update would bring back
+   the originally node that existed before switching. (Issue #4295)
    Justification:
-     Prevents error when trying commit from multiple nested WCs.
-     Fixes a test failure on 1.7.x when run within a format 30 WC.
+     After this operation the working copy doesn't match the repository
+     without obviouse way to recover.
+   Notes:
+     The real fix is in r1435722. The other revisions tweak the test that
+     also triggered a different revision on trunk.
    Branch:
-     ^/subversion/branches/1.7.x-r1389851
+     ^/subversion/branches/1.7.x-issue-4295
    Votes:
-     +1: stsp, breser
+     +1: rhuijben
+     +0: stsp (nice fix, but backport doesn't compile)
 
- * r1389878
-   Fix working copy access via symlink to WC nested within a format 30 WC.
+ * r1438879
+   Make 'show-diff' at the interactive conflict prompt show nicer diffs.
    Justification:
-     Fixes two test failures on 1.7.x when run within a format 30 WC.
-   Notes:
-     Depends on r1389499 backport for passing tests.
+     'show-diff' produces unreadable diffs in some cases, especially with
+     conflicts recorded during merges.
    Branch:
-     ^/subversion/branches/1.7.x-r1389878
+     ^/subversion/branches/1.7.x-r1438879
+   Votes:
+     +1: stsp
+     +0: rhuijben (Shouldn't we provide a three way diff instead of guessing
+                   a base to show a one way diff against based on the
+                   operation?
+                   
+                   I would prefer to have show-diff always work against
+                   the local pristine version, instead of sometimes against
+                   their or their-old (src-left) version, as that is the final
+                   change I would commit.)
+
+ * r1461760
+   Additional fix related to issue #4340, "filenames containing \n corrupt
+   FSFS repositories"
+   Justification:
+     This change makes libsvn_repos block filenames containing control
+     characters. Control characters in filenames have always been rejected
+     by libsvn_client, but client-side software bypassing libsvn_client
+     could still commit such filenames. Control characters in filenames
+     can cause problems not just in FSFS but also in dump files, unidiff,
+     and possibly elsewhere. It is a good idea to make the client and
+     server consistent.
+     See discussion linked from issue #4340 for more information.
+   Branch:
+     ^/subversion/branches/1.7.x-issue4340-repos
+   Votes:
+     +1: stsp
+     -0: danielsh (restrictions not suitable for introduction in patch release;
+                   dev@ thread started 2013/05/10 9pm)
+
+ * r1516806
+   Do not look at the hostname part of an URI when checking that
+   the schema data is canonical.
+   Justification:
+     As reported on dev@, "svn co file://./" and similar commands abort
+     instead of returning an error that the URL is invalid.  This was
+     caused by svn_uri_is_canonical treating the hostname "." as a path
+     segment.  After this change, svn_uri_is_canonicall correctly
+     determines that the URL is (syntactically) canonical, and the
+     commands later faile with a normal error in the RA layer, which
+     validates the semantics of the hostname.
    Votes:
-     +1: stsp, breser
+     +1: brane
 
+ * r1518184
+   Fix an of-by-one error in the fspath calculations of libsvn_ra_local,
+   for the specific case where a repository is placed in a Windows drive
+   root.
+   Justification:
+     Improves correctness. Resolves user reported problem.
+   Votes:
+     +1: rhuijben
+
+ * r1520529, r1520532, r1520539
+   Properly re-canonicalize urls read from xml based entries files.
+   Justification:
+     The canonicalization rules have been changed since 1.3 and while
+     we fixed the newer entries file parsing we forgot the xml based
+     entries.  Fixes a client assert.
+   Votes:
+     +1: rhuijben, philip
+
+ * ^/subversion/branches/1.7.x-issue4421
+   Fix Issue #4421
+   Justification:
+     Segfaults are bad.
+   Changes: diff: Fix crash with diff --summarize (issue #4421)
+   Notes:
+     This is straight to 1.7.x change since 1.8.x has a different diff
+     implementation without this problem.  It's not reasonable to backport
+     that to 1.7.x.
+   Votes:
+     +1: breser
+     +0: stsp (wondering whether the r1306275 group would fix the same issue)
 
 Veto-blocked changes:
 =====================
 
+ * r1409804
+   Add a delimiter between the two chains in svn_error_compose_create().
+   Justification:
+     Allow users to tell where the second error chain starts -- avoids
+     misrepresentation that the first error is caused by the second.
+   Votes:
+     -0: rhuijben (I'm not sure if this should be in a patch release and the
+                   stacktrace where this refers to is maintainer only)
+     +1: danielsh (err->file and err->line are only in maintainer builds.
+                   this is about err->message which is valid in all builds)
+     -1: stsp (not a bug fix, changes output in a patch release)
+
 Approved changes:
 =================
 
- * r1344864, r1344865, r1344869
-   Sort list of deleted paths in dump file output. See issue #4134.
-   Justification:
-     Reproducible output with APR 1.4.6.
-   Notes:
-     Merge with --accept=tc.
-   Votes:
-     +1: stsp, cmpilato, breser

Modified: subversion/branches/1.7.x-issue4153/autogen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/autogen.sh?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/autogen.sh (original)
+++ subversion/branches/1.7.x-issue4153/autogen.sh Wed Sep 11 16:54:18 2013
@@ -140,6 +140,9 @@ if test -n "$RELEASE_MODE"; then
 
   # Build the SWIG-related files
   make -f autogen-standalone.mk autogen-swig
+
+  # Remove the .swig_checked file
+  rm -f .swig_checked
 fi
 
 if test -n "$SKIP_DEPS"; then

Modified: subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4 (original)
+++ subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4 Wed Sep 11 16:54:18 2013
@@ -54,6 +54,17 @@ AC_DEFUN(SVN_LIB_RA_SERF_GSSAPI,
       CFLAGS=""
       SVN_GSSAPI_INCLUDES="`$KRB5_CONFIG --cflags`"
       SVN_GSSAPI_LIBS="`$KRB5_CONFIG --libs gssapi`"
+      if test $? -ne 0; then
+        dnl Some platforms e.g. Solaris 10 don't support the gssapi argument
+        dnl and need krb5 instead.  Since it doesn't tell us about gssapi
+        dnl we have to guess.  So let's try -lgss and /usr/include/gassapi
+        SVN_GSSAPI_INCLUDES="$SVN_GSSAPI_INCLUDES -I/usr/include/gssapi"
+        SVN_GSSAPI_LIBS="`$KRB5_CONFIG --libs krb5` -lgss"
+        if test $? -ne 0; then
+          dnl Both k5b-config commands failed.
+          AC_MSG_ERROR([krb5-config returned an error]) 
+        fi
+      fi
       SVN_GSSAPI_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_GSSAPI_LIBS)`"
       CPPFLAGS="$CPPFLAGS $SVN_GSSAPI_INCLUDES"
       CFLAGS="$old_CFLAGS"

Modified: subversion/branches/1.7.x-issue4153/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/configure.ac?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/configure.ac (original)
+++ subversion/branches/1.7.x-issue4153/configure.ac Wed Sep 11 16:54:18 2013
@@ -532,7 +532,7 @@ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 CPPFLAGS="$old_CPPFLAGS"
 
 
-dnl D-Bus (required for support for KWallet and GNOME Keyring) -------------------
+dnl D-Bus (required for support for KWallet) -------------------
 
 if test -n "$PKG_CONFIG"; then
   AC_MSG_CHECKING([for D-Bus .pc file])
@@ -582,31 +582,27 @@ if test "$with_gnome_keyring" != "no"; t
   if test "$svn_enable_shared" = "yes"; then
     if test "$APR_HAS_DSO" = "yes"; then
       if test -n "$PKG_CONFIG"; then
-        if test "$HAVE_DBUS" = "yes"; then
-          AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
-          if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+        AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
+        if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+          AC_MSG_RESULT([yes])
+          old_CPPFLAGS="$CPPFLAGS"
+          SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
+          CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
+          AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
+          AC_MSG_CHECKING([for GNOME Keyring])
+          if test "$with_gnome_keyring" = "yes"; then
             AC_MSG_RESULT([yes])
-            old_CPPFLAGS="$CPPFLAGS"
-            SVN_GNOME_KEYRING_INCLUDES="$DBUS_CPPFLAGS `$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
-            CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
-            AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
-            AC_MSG_CHECKING([for GNOME Keyring])
-            if test "$with_gnome_keyring" = "yes"; then
-              AC_MSG_RESULT([yes])
-              AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
-                        [Is GNOME Keyring support enabled?])
-              CPPFLAGS="$old_CPPFLAGS"
-              SVN_GNOME_KEYRING_LIBS="$DBUS_LIBS `$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
-            else
-              AC_MSG_RESULT([no])
-              AC_MSG_ERROR([cannot find GNOME Keyring])
-            fi
+            AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
+                      [Is GNOME Keyring support enabled?])
+            CPPFLAGS="$old_CPPFLAGS"
+            SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
           else
             AC_MSG_RESULT([no])
-            AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
+            AC_MSG_ERROR([cannot find GNOME Keyring])
           fi
         else
-          AC_MSG_ERROR([cannot find D-Bus])
+          AC_MSG_RESULT([no])
+          AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
         fi
       else
         AC_MSG_ERROR([cannot find pkg-config])

Modified: subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl (original)
+++ subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl Wed Sep 11 16:54:18 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/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl (original)
+++ subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl Wed Sep 11 16:54:18 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/1.7.x-issue4153/doc/doxygen.conf
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/doc/doxygen.conf?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/doc/doxygen.conf (original)
+++ subversion/branches/1.7.x-issue4153/doc/doxygen.conf Wed Sep 11 16:54:18 2013
@@ -754,7 +754,7 @@ COLS_IN_ALPHA_INDEX    = 5
 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that
 # should be ignored while generating the index headers.
 
-IGNORE_PREFIX          =
+IGNORE_PREFIX          = svn_ SVN_
 
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output

Modified: subversion/branches/1.7.x-issue4153/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/get-deps.sh?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/get-deps.sh (original)
+++ subversion/branches/1.7.x-issue4153/get-deps.sh Wed Sep 11 16:54:18 2013
@@ -27,11 +27,13 @@ APR=apr-1.4.5
 APR_UTIL=apr-util-1.3.12
 NEON=neon-0.29.6
 SERF=serf-0.7.2
-ZLIB=zlib-1.2.5
+ZLIB=zlib-1.2.8
 SQLITE_VERSION=3.7.6.3
-SQLITE=sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo $SQLITE_VERSION | sed -e "s/\./ /g"))
+SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
+SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
 
-HTTPD=httpd-2.2.19
+
+HTTPD=httpd-2.2.25
 APR_ICONV=apr-iconv-1.2.1
 
 BASEDIR=`pwd`
@@ -89,10 +91,10 @@ get_serf() {
 
 get_zlib() {
     cd $TEMPDIR
-    $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.bz2
+    $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.gz
     cd $BASEDIR
 
-    bzip2 -dc $TEMPDIR/$ZLIB.tar.bz2 | tar -xf -
+    gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
 
     mv $ZLIB zlib
 }
@@ -119,8 +121,12 @@ get_deps() {
     done
 
     if [ $# -gt 0 ]; then
-      for target; do
-        get_$target || usage
+      for target in "$@"; do
+        if [ "$target" != "deps" ]; then
+          get_$target || usage
+        else
+          usage
+        fi
       done
     else
       get_apr

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp Wed Sep 11 16:54:18 2013
@@ -376,7 +376,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
     return;
 
   char *tmp_path;
-  char *path = svn_relpath_dirname(err->file, err->pool);
+  char *path = svn_dirent_dirname(err->file, err->pool);
   while (tmp_path = strchr(path, '/'))
     *tmp_path = '.';
 
@@ -384,7 +384,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
   if (isJavaExceptionThrown())
     return;
 
-  jstring jfileName = makeJString(svn_relpath_basename(err->file, err->pool));
+  jstring jfileName = makeJString(svn_dirent_basename(err->file, err->pool));
   if (isJavaExceptionThrown())
     return;
 

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp Wed Sep 11 16:54:18 2013
@@ -168,8 +168,8 @@ SVNClient::status(const char *path, svn_
     SVN_JNI_ERR(svn_client_status5(&youngest, ctx, checkedPath.c_str(),
                                    &rev,
                                    depth,
-                                   getAll, onServer, noIgnore, FALSE,
-                                   ignoreExternals,
+                                   getAll, onServer, noIgnore, ignoreExternals,
+                                   FALSE,
                                    changelists.array(subPool),
                                    StatusCallback::callback, callback,
                                    subPool.getPool()), );

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java Wed Sep 11 16:54:18 2013
@@ -51,7 +51,11 @@ public class LogDate implements java.io.
         {
             throw new ParseException("String is not a valid Subversion date", 0);
         }
-        Date date = formatter.parse(datestr.substring(0, 23) + " UTC");
+        Date date;
+        synchronized(formatter)
+        {
+            date = formatter.parse(datestr.substring(0, 23) + " UTC");
+        }
         this.cachedString = datestr;
         cachedDate = Calendar.getInstance(UTC);
         cachedDate.setTime(date);

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java Wed Sep 11 16:54:18 2013
@@ -53,7 +53,11 @@ public class LogDate implements java.io.
         {
             throw new ParseException("String is not a valid Subversion date", 0);
         }
-        Date date = formatter.parse(datestr.substring(0, 23) + " UTC");
+        Date date;
+        synchronized(formatter)
+        {
+            date = formatter.parse(datestr.substring(0, 23) + " UTC");
+        }
         this.cachedString = datestr;
         cachedDate = Calendar.getInstance(UTC);
         cachedDate.setTime(date);

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i Wed Sep 11 16:54:18 2013
@@ -350,12 +350,17 @@
 */
 #ifdef SWIGPYTHON
 %typemap(in) (char *buffer, apr_size_t *len) ($*2_type temp) {
-    if (!PyInt_Check($input)) {
+    if (PyLong_Check($input)) {
+        temp = PyLong_AsLong($input);
+    }
+    else if (PyInt_Check($input)) {
+        temp = PyInt_AsLong($input);
+    }
+    else {
         PyErr_SetString(PyExc_TypeError,
                         "expecting an integer for the buffer size");
         SWIG_fail;
     }
-    temp = PyInt_AsLong($input);
     if (temp < 0) {
         PyErr_SetString(PyExc_ValueError,
                         "buffer size must be a positive integer");

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg Wed Sep 11 16:54:18 2013
@@ -901,6 +901,12 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
   $2 = (void *)baton;
 }
 #endif
+#ifdef SWIGPERL
+%ignore svn_fs_set_warning_func;
+#endif
+#ifdef SWIGPYTHON
+%ignore svn_fs_set_warning_func;
+#endif
 
 /* -----------------------------------------------------------------------
    svn_stream_t interoperability with language native io handles

Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Wed Sep 11 16:54:18 2013
@@ -114,9 +114,9 @@ static apr_hash_t *svn_swig_pl_to_hash(S
     h = (HV *)SvRV(source);
     cnt = hv_iterinit(h);
     while (cnt--) {
-	SV* item = hv_iternextsv(h, &key, &retlen);
-	void *val = cv(item, ctx, pool);
-	apr_hash_set(hash, key, APR_HASH_KEY_STRING, val);
+        SV* item = hv_iternextsv(h, &key, &retlen);
+        void *val = cv(item, ctx, pool);
+        apr_hash_set(hash, apr_pstrmemdup(pool, key, retlen), retlen, val);
     }
 
     return hash;

Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_adler32.h
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion/include/private/svn_adler32.h:r1423646
  Merged /subversion/branches/1.7.x/subversion/include/private/svn_adler32.h:r1338667-1521932
  Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_adler32.h:r1423647-1424282

Modified: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h Wed Sep 11 16:54:18 2013
@@ -52,9 +52,12 @@ extern "C" {
    from an external store, using REALMSTRING and USERNAME as keys.
    (The behavior is undefined if REALMSTRING or USERNAME are NULL.)
    If NON_INTERACTIVE is set, the user must not be involved in the
-   retrieval process.  POOL is used for any necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_get_t)
-  (const char **password,
+   retrieval process.  Set *DONE to TRUE if a password was stored
+   in *PASSWORD, to FALSE otherwise. POOL is used for any necessary
+   allocation. */
+typedef svn_error_t * (*svn_auth__password_get_t)
+  (svn_boolean_t *done,
+   const char **password,
    apr_hash_t *creds,
    const char *realmstring,
    const char *username,
@@ -65,10 +68,12 @@ typedef svn_boolean_t (*svn_auth__passwo
 /* A function that stores PASSWORD (or some encrypted version thereof)
    either directly in CREDS, or externally using REALMSTRING and USERNAME
    as keys into the external store.  If NON_INTERACTIVE is set, the user
-   must not be involved in the storage process.  POOL is used for any
-   necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_set_t)
-  (apr_hash_t *creds,
+   must not be involved in the storage process. Set *DONE to TRUE if the
+   password was store, to FALSE otherwise. POOL is used for any necessary
+   allocation. */
+typedef svn_error_t * (*svn_auth__password_set_t)
+  (svn_boolean_t *done,
+   apr_hash_t *creds,
    const char *realmstring,
    const char *username,
    const char *password,
@@ -110,8 +115,9 @@ svn_auth__simple_save_creds_helper(svn_b
 /* Implementation of svn_auth__password_get_t that retrieves
    the plaintext password from CREDS when USERNAME matches the stored
    credentials. */
-svn_boolean_t
-svn_auth__simple_password_get(const char **password,
+svn_error_t *
+svn_auth__simple_password_get(svn_boolean_t *done,
+                              const char **password,
                               apr_hash_t *creds,
                               const char *realmstring,
                               const char *username,
@@ -121,8 +127,9 @@ svn_auth__simple_password_get(const char
 
 /* Implementation of svn_auth__password_set_t that stores
    the plaintext password in CREDS. */
-svn_boolean_t
-svn_auth__simple_password_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__simple_password_set(svn_boolean_t *done,
+                              apr_hash_t *creds,
                               const char *realmstring,
                               const char *username,
                               const char *password,
@@ -168,8 +175,9 @@ svn_auth__ssl_client_cert_pw_file_save_c
 /* This implements the svn_auth__password_get_t interface.
    Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;
    ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_get(const char **passphrase,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_get(svn_boolean_t *done,
+                                 const char **passphrase,
                                  apr_hash_t *creds,
                                  const char *realmstring,
                                  const char *username,
@@ -179,8 +187,9 @@ svn_auth__ssl_client_cert_pw_get(const c
 
 /* This implements the svn_auth__password_set_t interface.
    Store PASSPHRASE in CREDS; ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_set(svn_boolean_t *done,
+                                 apr_hash_t *creds,
                                  const char *realmstring,
                                  const char *username,
                                  const char *passphrase,

Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_string_private.h
------------------------------------------------------------------------------
  Merged /subversion/branches/1.7.x/subversion/include/private/svn_string_private.h:r1338667-1521932
  Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_string_private.h:r1423647-1424282
  Merged /subversion/trunk/subversion/include/private/svn_string_private.h:r1423646

Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
  Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_temp_serializer.h:r1423647-1424282
  Merged /subversion/trunk/subversion/include/private/svn_temp_serializer.h:r1423646
  Merged /subversion/branches/1.7.x/subversion/include/private/svn_temp_serializer.h:r1338667-1521932

Modified: subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h Wed Sep 11 16:54:18 2013
@@ -71,7 +71,7 @@ extern "C" {
  *
  * @since New in 1.1.
  */
-#define SVN_VER_PATCH      7
+#define SVN_VER_PATCH      14
 
 
 /** @deprecated Provided for backward compatibility with the 1.0 API. */

Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Wed Sep 11 16:54:18 2013
@@ -38,7 +38,6 @@
 #include "svn_private_config.h"
 
 #include <glib.h>
-#include <dbus/dbus.h>
 #include <gnome-keyring.h>
 
 
@@ -230,10 +229,60 @@ unlock_gnome_keyring(const char *keyring
   return TRUE;
 }
 
-/* Implementation of password_get_t that retrieves the password
+
+/* There is a race here: this ensures keyring is unlocked just now,
+   but will it still be unlocked when we use it? */
+static svn_error_t *
+ensure_gnome_keyring_is_unlocked(svn_boolean_t non_interactive,
+                                 apr_hash_t *parameters,
+                                 apr_pool_t *scratch_pool)
+{
+  const char *default_keyring = get_default_keyring_name(scratch_pool);
+
+  if (! non_interactive)
+    {
+      svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
+        apr_hash_get(parameters,
+                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
+                     APR_HASH_KEY_STRING);
+      void *unlock_prompt_baton =
+        apr_hash_get(parameters,
+                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
+                     APR_HASH_KEY_STRING);
+
+      char *keyring_password;
+
+      if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
+        {
+          SVN_ERR((*unlock_prompt_func)(&keyring_password,
+                                        default_keyring,
+                                        unlock_prompt_baton,
+                                        scratch_pool));
+
+          /* If keyring is locked give up and try the next provider. */
+          if (! unlock_gnome_keyring(default_keyring, keyring_password,
+                                     scratch_pool))
+            return SVN_NO_ERROR;
+        }
+    }
+  else
+    {
+      if (check_keyring_is_locked(default_keyring))
+        {
+          return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
+                                  _("GNOME Keyring is locked and "
+                                    "we are non-interactive"));
+        }
+    }
+
+  return SVN_NO_ERROR;
+}
+
+/* Implementation of svn_auth__password_get_t that retrieves the password
    from GNOME Keyring. */
-static svn_boolean_t
-password_get_gnome_keyring(const char **password,
+static svn_error_t *
+password_get_gnome_keyring(svn_boolean_t *done,
+                           const char **password,
                            apr_hash_t *creds,
                            const char *realmstring,
                            const char *username,
@@ -244,13 +293,10 @@ password_get_gnome_keyring(const char **
   char *default_keyring = NULL;
   GnomeKeyringResult result;
   GList *items;
-  svn_boolean_t ret = FALSE;
 
-  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
-    return FALSE;
+  *done = FALSE;
 
-  if (! gnome_keyring_is_available())
-    return FALSE;
+  SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
 
   default_keyring = get_default_keyring_name(pool);
 
@@ -278,7 +324,7 @@ password_get_gnome_keyring(const char **
               if (len > 0)
                 {
                   *password = apr_pstrmemdup(pool, item->password, len);
-                  ret = TRUE;
+                  *done = TRUE;
                 }
             }
           gnome_keyring_network_password_list_free(items);
@@ -294,13 +340,14 @@ password_get_gnome_keyring(const char **
 
   free(default_keyring);
 
-  return ret;
+  return SVN_NO_ERROR;
 }
 
-/* Implementation of password_set_t that stores the password in
+/* Implementation of svn_auth__password_set_t that stores the password in
    GNOME Keyring. */
-static svn_boolean_t
-password_set_gnome_keyring(apr_hash_t *creds,
+static svn_error_t *
+password_set_gnome_keyring(svn_boolean_t *done,
+                           apr_hash_t *creds,
                            const char *realmstring,
                            const char *username,
                            const char *password,
@@ -312,11 +359,9 @@ password_set_gnome_keyring(apr_hash_t *c
   GnomeKeyringResult result;
   guint32 item_id;
 
-  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
-    return FALSE;
+  *done = FALSE;
 
-  if (! gnome_keyring_is_available())
-    return FALSE;
+  SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
 
   default_keyring = get_default_keyring_name(pool);
 
@@ -344,7 +389,8 @@ password_set_gnome_keyring(apr_hash_t *c
 
   free(default_keyring);
 
-  return result == GNOME_KEYRING_RESULT_OK;
+  *done = (result == GNOME_KEYRING_RESULT_OK);
+  return SVN_NO_ERROR;
 }
 
 /* Get cached encrypted credentials from the simple provider's cache. */
@@ -356,43 +402,6 @@ simple_gnome_keyring_first_creds(void **
                                  const char *realmstring,
                                  apr_pool_t *pool)
 {
-  svn_boolean_t non_interactive = apr_hash_get(parameters,
-                                               SVN_AUTH_PARAM_NON_INTERACTIVE,
-                                               APR_HASH_KEY_STRING) != NULL;
-  const char *default_keyring = get_default_keyring_name(pool);
-  if (! non_interactive)
-    {
-      svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
-                     APR_HASH_KEY_STRING);
-      void *unlock_prompt_baton =
-        apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
-                     APR_HASH_KEY_STRING);
-
-      char *keyring_password;
-
-      if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
-        {
-          SVN_ERR((*unlock_prompt_func)(&keyring_password,
-                                        default_keyring,
-                                        unlock_prompt_baton,
-                                        pool));
-
-          /* If keyring is locked give up and try the next provider. */
-          if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
-            return SVN_NO_ERROR;
-        }
-    }
-  else
-    {
-      if (check_keyring_is_locked(default_keyring))
-        {
-          return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
-                                  _("GNOME Keyring is locked and "
-                                    "we are non-interactive"));
-        }
-    }
   return svn_auth__simple_first_creds_helper
            (credentials,
             iter_baton, provider_baton,
@@ -411,43 +420,6 @@ simple_gnome_keyring_save_creds(svn_bool
                                 const char *realmstring,
                                 apr_pool_t *pool)
 {
-  svn_boolean_t non_interactive = apr_hash_get(parameters,
-                                               SVN_AUTH_PARAM_NON_INTERACTIVE,
-                                               APR_HASH_KEY_STRING) != NULL;
-  const char *default_keyring = get_default_keyring_name(pool);
-  if (! non_interactive)
-    {
-      svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
-                     APR_HASH_KEY_STRING);
-      void *unlock_prompt_baton =
-        apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
-                     APR_HASH_KEY_STRING);
-
-      char *keyring_password;
-
-      if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
-        {
-          SVN_ERR((*unlock_prompt_func)(&keyring_password,
-                                        default_keyring,
-                                        unlock_prompt_baton,
-                                        pool));
-
-          /* If keyring is locked give up and try the next provider. */
-          if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
-            return SVN_NO_ERROR;
-        }
-    }
-  else
-    {
-      if (check_keyring_is_locked(default_keyring))
-        {
-          return svn_error_create(SVN_ERR_AUTHN_CREDS_NOT_SAVED, NULL,
-                                  _("GNOME Keyring is locked and "
-                                    "we are non-interactive"));
-        }
-    }
   return svn_auth__simple_save_creds_helper
            (saved, credentials,
             provider_baton, parameters,
@@ -522,43 +494,6 @@ ssl_client_cert_pw_gnome_keyring_first_c
                                              const char *realmstring,
                                              apr_pool_t *pool)
 {
-  svn_boolean_t non_interactive = apr_hash_get(parameters,
-                                               SVN_AUTH_PARAM_NON_INTERACTIVE,
-                                               APR_HASH_KEY_STRING) != NULL;
-  const char *default_keyring = get_default_keyring_name(pool);
-  if (! non_interactive)
-    {
-      svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
-                     APR_HASH_KEY_STRING);
-      void *unlock_prompt_baton =
-        apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
-                     APR_HASH_KEY_STRING);
-
-      char *keyring_password;
-
-      if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
-        {
-          SVN_ERR((*unlock_prompt_func)(&keyring_password,
-                                        default_keyring,
-                                        unlock_prompt_baton,
-                                        pool));
-
-          /* If keyring is locked give up and try the next provider. */
-          if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
-            return SVN_NO_ERROR;
-        }
-    }
-  else
-    {
-      if (check_keyring_is_locked(default_keyring))
-        {
-          return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
-                                  _("GNOME Keyring is locked and "
-                                    "we are non-interactive"));
-        }
-    }
   return svn_auth__ssl_client_cert_pw_file_first_creds_helper
            (credentials,
             iter_baton, provider_baton,
@@ -578,43 +513,6 @@ ssl_client_cert_pw_gnome_keyring_save_cr
                                             const char *realmstring,
                                             apr_pool_t *pool)
 {
-  svn_boolean_t non_interactive = apr_hash_get(parameters,
-                                               SVN_AUTH_PARAM_NON_INTERACTIVE,
-                                               APR_HASH_KEY_STRING) != NULL;
-  const char *default_keyring = get_default_keyring_name(pool);
-  if (! non_interactive)
-    {
-      svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
-                     APR_HASH_KEY_STRING);
-      void *unlock_prompt_baton =
-        apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
-                     APR_HASH_KEY_STRING);
-
-      char *keyring_password;
-
-      if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
-        {
-          SVN_ERR((*unlock_prompt_func)(&keyring_password,
-                                        default_keyring,
-                                        unlock_prompt_baton,
-                                        pool));
-
-          /* If keyring is locked give up and try the next provider. */
-          if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
-            return SVN_NO_ERROR;
-         }
-    }
-  else
-    {
-      if (check_keyring_is_locked(default_keyring))
-        {
-          return svn_error_create(SVN_ERR_AUTHN_CREDS_NOT_SAVED, NULL,
-                                  _("GNOME Keyring is locked and "
-                                    "we are non-interactive"));
-        }
-    }
   return svn_auth__ssl_client_cert_pw_file_save_creds_helper
            (saved, credentials,
             provider_baton, parameters,

Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp Wed Sep 11 16:54:18 2013
@@ -60,6 +60,9 @@
 /* KWallet simple provider, puts passwords in KWallet                    */
 /*-----------------------------------------------------------------------*/
 
+static int q_argc = 1;
+static char q_argv0[] = "svn"; // Build non-const char * from string constant
+static char *q_argv[] = { q_argv0 };
 
 static const char *
 get_application_name(apr_hash_t *parameters,
@@ -181,8 +184,9 @@ kwallet_terminate(void *data)
 
 /* Implementation of svn_auth__password_get_t that retrieves
    the password from KWallet. */
-static svn_boolean_t
-kwallet_password_get(const char **password,
+static svn_error_t *
+kwallet_password_get(svn_boolean_t *done,
+                     const char **password,
                      apr_hash_t *creds,
                      const char *realmstring,
                      const char *username,
@@ -190,25 +194,32 @@ kwallet_password_get(const char **passwo
                      svn_boolean_t non_interactive,
                      apr_pool_t *pool)
 {
-  if (non_interactive)
+  QString wallet_name = get_wallet_name(parameters);
+
+  *done = FALSE;
+
+  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
     {
-      return FALSE;
+      return SVN_NO_ERROR;
     }
 
-  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
+  if (non_interactive)
     {
-      return FALSE;
+      if (!KWallet::Wallet::isOpen(wallet_name))
+        return SVN_NO_ERROR;
+
+      /* There is a race here: the wallet was open just now, but will
+         it still be open when we come to use it below? */
     }
 
   QCoreApplication *app;
   if (! qApp)
     {
-      int argc = 1;
-      app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+      int argc = q_argc;
+      app = new QCoreApplication(argc, q_argv);
     }
 
-  KCmdLineArgs::init(1,
-                     (char *[1]) {(char *) "svn"},
+  KCmdLineArgs::init(q_argc, q_argv,
                      get_application_name(parameters, pool),
                      "subversion",
                      ki18n(get_application_name(parameters, pool)),
@@ -216,8 +227,6 @@ kwallet_password_get(const char **passwo
                      ki18n("Version control system"),
                      KCmdLineArgs::CmdLineArgKDE);
   KComponentData component_data(KCmdLineArgs::aboutData());
-  svn_boolean_t ret = FALSE;
-  QString wallet_name = get_wallet_name(parameters);
   QString folder = QString::fromUtf8("Subversion");
   QString key =
     QString::fromUtf8(username) + "@" + QString::fromUtf8(realmstring);
@@ -238,21 +247,23 @@ kwallet_password_get(const char **passwo
                   *password = apr_pstrmemdup(pool,
                                              q_password.toUtf8().data(),
                                              q_password.size());
-                  ret = TRUE;
+                  *done = TRUE;
                 }
             }
         }
     }
 
-  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+  apr_pool_cleanup_register(pool, parameters, kwallet_terminate,
+                            apr_pool_cleanup_null);
 
-  return ret;
+  return SVN_NO_ERROR;
 }
 
 /* Implementation of svn_auth__password_set_t that stores
    the password in KWallet. */
-static svn_boolean_t
-kwallet_password_set(apr_hash_t *creds,
+static svn_error_t *
+kwallet_password_set(svn_boolean_t *done,
+                     apr_hash_t *creds,
                      const char *realmstring,
                      const char *username,
                      const char *password,
@@ -260,25 +271,32 @@ kwallet_password_set(apr_hash_t *creds,
                      svn_boolean_t non_interactive,
                      apr_pool_t *pool)
 {
-  if (non_interactive)
+  QString wallet_name = get_wallet_name(parameters);
+
+  *done = FALSE;
+
+  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
     {
-      return FALSE;
+      return SVN_NO_ERROR;
     }
 
-  if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
+  if (non_interactive)
     {
-      return FALSE;
+      if (!KWallet::Wallet::isOpen(wallet_name))
+        return SVN_NO_ERROR;
+
+      /* There is a race here: the wallet was open just now, but will
+         it still be open when we come to use it below? */
     }
 
   QCoreApplication *app;
   if (! qApp)
     {
-      int argc = 1;
-      app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+      int argc = q_argc;
+      app = new QCoreApplication(argc, q_argv);
     }
 
-  KCmdLineArgs::init(1,
-                     (char *[1]) {(char *) "svn"},
+  KCmdLineArgs::init(q_argc, q_argv,
                      get_application_name(parameters, pool),
                      "subversion",
                      ki18n(get_application_name(parameters, pool)),
@@ -286,9 +304,7 @@ kwallet_password_set(apr_hash_t *creds,
                      ki18n("Version control system"),
                      KCmdLineArgs::CmdLineArgKDE);
   KComponentData component_data(KCmdLineArgs::aboutData());
-  svn_boolean_t ret = FALSE;
   QString q_password = QString::fromUtf8(password);
-  QString wallet_name = get_wallet_name(parameters);
   QString folder = QString::fromUtf8("Subversion");
   KWallet::Wallet *wallet = get_wallet(wallet_name, parameters);
   if (wallet)
@@ -307,14 +323,15 @@ kwallet_password_set(apr_hash_t *creds,
             + QString::fromUtf8(realmstring);
           if (wallet->writePassword(key, q_password) == 0)
             {
-              ret = TRUE;
+              *done = TRUE;
             }
         }
     }
 
-  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+  apr_pool_cleanup_register(pool, parameters, kwallet_terminate,
+                            apr_pool_cleanup_null);
 
-  return ret;
+  return SVN_NO_ERROR;
 }
 
 /* Get cached encrypted credentials from the simple provider's cache. */

Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c Wed Sep 11 16:54:18 2013
@@ -675,28 +675,41 @@ svn_client_blame5(const char *target,
       SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, target_abspath_or_url, pool,
                              pool));
 
-      if (status->text_status != svn_wc_status_normal)
+      if (status->text_status != svn_wc_status_normal
+          || (status->prop_status != svn_wc_status_normal
+              && status->prop_status != svn_wc_status_none))
         {
-          apr_hash_t *props;
           svn_stream_t *wcfile;
-          svn_string_t *keywords;
           svn_stream_t *tempfile;
+          svn_opt_revision_t rev;
+          svn_boolean_t normalize_eols = FALSE;
           const char *temppath;
-          apr_hash_t *kw = NULL;
 
-          SVN_ERR(svn_wc_prop_list2(&props, ctx->wc_ctx, target_abspath_or_url,
-                                    pool, pool));
-          SVN_ERR(svn_stream_open_readonly(&wcfile, target, pool, pool));
-
-          keywords = apr_hash_get(props, SVN_PROP_KEYWORDS,
-                                  APR_HASH_KEY_STRING);
+          if (status->prop_status != svn_wc_status_none)
+            {
+              const svn_string_t *eol_style;
+              SVN_ERR(svn_wc_prop_get2(&eol_style, ctx->wc_ctx,
+                                       target_abspath_or_url,
+                                       SVN_PROP_EOL_STYLE,
+                                       pool, pool));
+
+              if (eol_style)
+                {
+                  svn_subst_eol_style_t style;
+                  const char *eol;
+                  svn_subst_eol_style_from_value(&style, &eol, eol_style->data);
 
-          if (keywords)
-            SVN_ERR(svn_subst_build_keywords2(&kw, keywords->data, NULL, NULL,
-                                              0, NULL, pool));
+                  normalize_eols = (style == svn_subst_eol_style_native);
+                }
+            }
 
-          wcfile = svn_subst_stream_translated(wcfile, "\n", TRUE, kw, FALSE,
-                                               pool);
+          rev.kind = svn_opt_revision_working;
+          SVN_ERR(svn_client__get_normalized_stream(&wcfile, ctx->wc_ctx,
+                                                    target_abspath_or_url, &rev,
+                                                    FALSE, normalize_eols,
+                                                    ctx->cancel_func,
+                                                    ctx->cancel_baton,
+                                                    pool, pool));
 
           SVN_ERR(svn_stream_open_unique(&tempfile, &temppath, NULL,
                                          svn_io_file_del_on_pool_cleanup,

Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h Wed Sep 11 16:54:18 2013
@@ -947,7 +947,11 @@ svn_client__export_externals(apr_hash_t 
 
 /* Perform status operations on each external in EXTERNAL_MAP, a const char *
    local_abspath of all externals mapping to the const char* defining_abspath.
-   All other options are the same as those passed to svn_client_status(). */
+   All other options are the same as those passed to svn_client_status().
+
+   If ANCHOR_ABSPATH and ANCHOR-RELPATH are not null, use them to provide
+   properly formatted relative paths
+ */
 svn_error_t *
 svn_client__do_external_status(svn_client_ctx_t *ctx,
                                apr_hash_t *external_map,
@@ -955,9 +959,11 @@ svn_client__do_external_status(svn_clien
                                svn_boolean_t get_all,
                                svn_boolean_t update,
                                svn_boolean_t no_ignore,
+                               const char *anchor_abspath,
+                               const char *anchor_relpath,
                                svn_client_status_func_t status_func,
                                void *status_baton,
-                               apr_pool_t *pool);
+                               apr_pool_t *scratch_pool);
 
 /* Baton type for svn_wc__external_info_gatherer(). */
 typedef struct svn_client__external_func_baton_t

Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c Wed Sep 11 16:54:18 2013
@@ -1189,6 +1189,7 @@ svn_client_commit5(const apr_array_heade
   const char *log_msg;
   const char *base_abspath;
   const char *base_url;
+  const char *ra_session_wc;
   apr_array_header_t *rel_targets;
   apr_array_header_t *lock_targets;
   apr_array_header_t *locks_obtained;
@@ -1390,9 +1391,19 @@ svn_client_commit5(const apr_array_heade
   cb.info = &commit_info;
   cb.pool = pool;
 
+  /* When committing from multiple WCs, get the RA editor from
+   * the first WC, rather than the BASE_ABSPATH. The BASE_ABSPATH
+   * might be an unrelated parent of nested working copies.
+   * We don't support commits to multiple repositories so using
+   * the first WC to get the RA session is safe. */
+  if (lock_targets->nelts > 1)
+    ra_session_wc = APR_ARRAY_IDX(lock_targets, 0, const char *);
+  else
+    ra_session_wc = base_abspath;
+
   cmt_err = svn_error_trace(
                  get_ra_editor(&ra_session, &editor, &edit_baton, ctx,
-                               base_url, base_abspath, log_msg,
+                               base_url, ra_session_wc, log_msg,
                                commit_items, revprop_table, TRUE, lock_tokens,
                                keep_locks, capture_commit_info,
                                &cb, pool));