You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/05/17 00:04:00 UTC

svn commit: r1483586 [1/3] - in /subversion/branches/fsfs-format7: ./ build/ac-macros/ build/generator/ subversion/bindings/ctypes-python/test/ subversion/bindings/javahl/native/ subversion/bindings/swig/include/ subversion/bindings/swig/perl/libsvn_sw...

Author: stefan2
Date: Thu May 16 22:03:58 2013
New Revision: 1483586

URL: http://svn.apache.org/r1483586
Log:
On the fsfs-format7 branch: sync with /trunk up to and including r1483581

Added:
    subversion/branches/fsfs-format7/subversion/tests/cmdline/upgrade_tests_data/changelist_upgrade_1_6.tar.bz2
      - copied unchanged from r1483581, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/changelist_upgrade_1_6.tar.bz2
Modified:
    subversion/branches/fsfs-format7/   (props changed)
    subversion/branches/fsfs-format7/CHANGES
    subversion/branches/fsfs-format7/build.conf
    subversion/branches/fsfs-format7/build/ac-macros/compiler.m4
    subversion/branches/fsfs-format7/build/generator/gen_win.py
    subversion/branches/fsfs-format7/configure.ac
    subversion/branches/fsfs-format7/subversion/bindings/ctypes-python/test/svntypes.py
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/greek_tree.rb
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/test_client.rb
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/windows_util.rb
    subversion/branches/fsfs-format7/subversion/include/private/svn_string_private.h
    subversion/branches/fsfs-format7/subversion/include/svn_error.h
    subversion/branches/fsfs-format7/subversion/include/svn_fs.h
    subversion/branches/fsfs-format7/subversion/include/svn_hash.h
    subversion/branches/fsfs-format7/subversion/include/svn_path.h
    subversion/branches/fsfs-format7/subversion/include/svn_types.h
    subversion/branches/fsfs-format7/subversion/include/svn_utf.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/add.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/import.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/list.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/log.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/repos_diff.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_svn/client.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/commit.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/delta.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/dump.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/log.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/replay.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/reporter.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/cache-inprocess.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/cmdline.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/compat.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/error.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/hash.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/nls.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/path.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/string.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/types.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/conflicts.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/diff_editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/diff_local.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/entries.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c
    subversion/branches/fsfs-format7/subversion/mod_dav_svn/activity.c
    subversion/branches/fsfs-format7/subversion/mod_dav_svn/lock.c
    subversion/branches/fsfs-format7/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/fsfs-format7/subversion/svndumpfilter/svndumpfilter.c
    subversion/branches/fsfs-format7/subversion/svnmucc/svnmucc.c
    subversion/branches/fsfs-format7/subversion/svnrdump/load_editor.c
    subversion/branches/fsfs-format7/subversion/svnserve/serve.c
    subversion/branches/fsfs-format7/subversion/svnserve/svnserve.c
    subversion/branches/fsfs-format7/subversion/svnsync/svnsync.c
    subversion/branches/fsfs-format7/subversion/tests/cmdline/diff_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/merge_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/revision-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/utf-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/fsfs-format7/tools/dist/backport.pl

Propchange: subversion/branches/fsfs-format7/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1481453-1483581

Modified: subversion/branches/fsfs-format7/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/CHANGES?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/CHANGES (original)
+++ subversion/branches/fsfs-format7/CHANGES Thu May 16 22:03:58 2013
@@ -25,59 +25,124 @@ http://svn.apache.org/repos/asf/subversi
 
 
 Version 1.8.0
-(?? ??? 2013, from /branches/1.8.x)
+(14 Jun 2013, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.0
 
  User-visible changes:
   - General:
-    *
+    * require serf as client-side http library (neon support removed) (r1349694)
+    * deprecate the Berkeley DB FS backend (libsvn_fs_base) (r1464985 et al)
 
   - Major new features:
-    * inheritable properties (r1395109)
-    * GPG agent support. (r1151069)
+    * working copy records moves as first-class operation (issue #3631, #4232)
+    * merge uses reintegrate mode automatically when needed (r1369896 et al)
     * FSFS: Packing of revision property shards (issue #3944)
-    * explicit handling of local moves/renames (issue #3631, #4232)
-    * new more detailed conflict storage
-    * use svn_ra_serf as our new http library.
-    * automatic merge avoids explicit reintegration merges.
-
-  - Minor new features and improvements:
-    * new 'svnadmin load --revision' load filtering support (issue #3734)
+    * support inheritable properties (r1395109)
+    * repository can suggest config for autoprops and ignores (r1401908)
+    * support gpg-agent for password caching (r1151069)
+    * authz rules can be stored inside the repository (r1424780)
+
+  - Minor new features and improvements (client-side):
+    * doubled svn:// protocol throughput (r1325899)
+    * optimize file/dir truename checks on Windows (r1435527)
     * new 'commit --include-externals' option (related to issues #1167, #3563)
-    * new '--include-externals' option for 'svn list' (issue #4225)
+    * new --include-externals option for 'svn list' (issue #4225)
     * remove extraneous externals output from 'svn status -q' (issue #1935)
-    * new 'svnadmin hotcopy --incremental' support for FSFS (issue #3815)
     * reject some attempts to merge between unrelated branches (r1215273)
-    * support GPG agent for password storage on UNIX-like platforms (r1150783)
-    * new 'svnadmin lock' / 'svnadmin unlock' subcommands (issue #3942, #4092)
-    * new SVNUseUTF8 configuration option for mod_dav_svn (issue #2487)
-    * new SVNHooksEnv configuration option for mod_dav_svn (r1239966)
     * new --ignore-properties option for 'svn diff' (r1239553, -617)
     * new --properties-only option for 'svn diff' (r1336110)
     * new --patch-compatible option for 'svn diff' (r1239561)
     * new --no-diff-added option for 'svn diff' (r1433958)
-    * new SvnPubSub distributed commit hooks (tools/server-side/svnpubsub)
-    * new light-weight benchmarking client (tools/client-side/svn-bench)
     * new w/c subtree duplication tool (tools/client-side/detach.py)
-    * new svndumpfilter dependency analysis (tools/server-side/svnpredumpfilter.py)
     * new mergeinfo fixup tool (tools/client-side/mergeinfo-sanitizer.py)
     * 'svn diff' can compare arbitrary files and directories (r1310291, et al)
     * ra_serf avoids re-downloading content present in pristine store (r1333936)
     * 'svn mergeinfo' now honors the --revision (-r) option (issue #4199)
     * 'svn mergeinfo' now shows a summary graph by default (issue #4239)
     * new --search and --search-and options for 'svn log' (r1354666, -83518)
+    * 'svn log' reports the node kind even for pre-1.6 revision files (r1242958)
+    * sort path list generated by "svn log -v --xml" (r1299323)
     * new built-in interactive text conflict merge tool (r1357864, et al)
-    * new 'svn --version --verbose' option shows runtime environment info
-    * new 'svnadmin freeze' subcommand (r1376228)
-    * 'svndumpfilter' now supports --delta dumpfiles (r1351009, -3745)
-    * new '--drop-all-emtpy-revs' option for 'svndumpfilter' (issue #3681)
-    * client version info now reported to commit hooks (issue #4124)
-    * 'svn merge' now uses reintegrate mode automatically when needed
+    * 'svn --version' shows build system info (r1368662)
+    * 'svn --version --verbose' shows runtime environment info (r1370813 et al)
     * 'svn' is now non-interactive when not run in a terminal device (r1424037)
-    * 'svn propset' checks spelling of reserved property names.
+    * 'svn propset' checks spelling of reserved property names (r1470781)
     * improve working copy performance on network disks (issue #4176) 
-    * repos suggested config via svn:auto-props and svn:global-ignores (r1401908)
     * support for custom keyword definitions in svn:keywords (issue #890)
+    * svn:ignore __pycache__ directories by default (r1150073)
+    * 'svn diff --git' include copyfrom revision in "copied" headers (r1155279)
+    * svn:mergeinfo related operations now use much less memory (r1149519 et al)
+    * get list of supported schemes for RA libraries (r1148134)
+    * 'svn checkout' skips file externals from other repositories (r1153110)
+    * 'svn resolve' exits non-zero if conflicts could not be resolved (r1150439)
+    * let HTTPv2-aware clients fetch v2-style resources (r1161202)
+    * 'svn status' with better NLS support (r1157537, -682)
+    * better tracking of shallow-yet-complete merges (issues #4056, #4057)
+    * make 'svn status --quiet' w/ externals quieter still (issue #1935)
+    * ensure that conflict paths are shown relative-ized (r1337520)
+    * improve performance of local multi-target deletions (r1195873)
+    * various interactive conflict resolver improvements in 'svn' (r1440421 etc)
+    * improved tree diff implementation for diff and merge (r1440599 et al)
+    * tree conflicts on directories detected better during merges (issue #3150)
+    * allow reverting unmodified copies with 'svn remove' (r1442611)
+    * make 'svn diff' with mixed URL and local path targets work (r1442640)
+    * make 'svn patch' re-add deleted directories if needed (r1445333)
+    * make repos-wc diffs fully ancestry-aware (r1445904)
+    * 'svn diff --git' now implies 'svn diff --show-copies-as-adds' (r1446279)
+    * 'svn diff --show-copies-as-adds' now implies --notice-ancestry (r1446279)
+    * improved tree-conflict detection for 'svn switch' (r1449413, r1450582)
+    * allow up to 8 revision number digits in 'svn status -v' output (r1428637)
+    * show node kind (file or dir) in tree conflict descriptions (r1429907)
+    * restore deleted switched paths upon next update (issue #4295)
+    * add support for copying paths from foreign repositories (issue #3590)
+    * fix merge -cA,B with --accept option aborts if rA conflicts (issue #4238)
+    * 'svn resolve' interactive support; no longer requires --accept (r1336929)
+    * notify when removing externals leaves behind modified files (r1366021)
+    * new 'http-max-connections' configuration option for serf (r1421559)
+    * new 'http-bulk-updates' configuration option for serf (r1421490)
+    * 'svn cleanup' now runs SQLite "vacuum" to reclaim space (r1418459)
+    * 'svn info' displays repository-relative URL (r1415365)
+    * fix serf memory leak on checkout (issue #4194)
+    * detect duplicate paths setting svn:externals (issue #4227)
+    * make ra_serf work over HTTP/1.0 proxies (issue #3979)
+    * make ra_serf accept gzip compression for all responses (r1407454)
+    * double ra_serf performance for checkout and export (r1407545)
+    * improve network and disk i/o interleaving in ra_serf (r1407934)
+    * avoid assert in ra_serf when REPORT response was truncated (r1407935)
+    * rewrite ra_serf XML parser (r1409259 et al)
+    * ra_serf can create transaction with inline txnprops (r1375167)
+    * partially fix replace+propset of locked file fails over DAV (issue #3674)
+    * fix ra_serf doesn't handle bad baseline error from server (issue #4127)
+    * decreased default http timeout for ra_serf (issue #3968)
+    * prevent ra_serf from corrupting the working copy (issue #3993)
+    * ra_serf transmits property changes inline to reduce requests (r1378927)
+    * allow client to avoid SSL certificate prompts (issue #2410)
+    * improve interactive resolution of property conflicts (r1387678 et al)
+    * make ra_serf raise an error upon delta-base mismatch (issue #4235)
+    * tune ra_svn transmit buffer handling (r1391788)
+    * make 'svnrdump' work with serf (issue #4116)
+    * fix 'svnrdump' on path below repository root (issue #4101)
+    * support ipv6 in URLs (e.g. http://[::1]/svn/repos) (r1454047)
+    * conflict resolver now iterates paths in a sorted order (r1461820)
+    * mod_dav_svn does keyword expansion with 'kw=1' query arg (r1466055)
+    * add support for custom keyword definitions (issue #890)
+
+  - Minor new features and improvements (server-side):
+    * improve performance of config file parsing (r1344347 et al)
+    * new 'svnadmin load --revision' load filtering support (issue #3734)
+    * new 'svnadmin hotcopy --incremental' support for FSFS (issue #3815)
+    * new 'svnadmin lock' / 'svnadmin unlock' subcommands (issue #3942, #4092)
+    * new SVNUseUTF8 configuration option for mod_dav_svn (issue #2487)
+    * new SVNHooksEnv configuration option for mod_dav_svn (r1239966)
+    * new SvnPubSub distributed commit hooks (tools/server-side/svnpubsub)
+    * new light-weight benchmarking client (tools/client-side/svn-bench)
+    * svndumpfilter dependency analysis (tools/server-side/svnpredumpfilter.py)
+    * new automatic working copy updater (tools/server-side/svnpubsub)
+    * new 'svnadmin freeze' subcommand (r1376228)
+    * 'svndumpfilter' now supports --delta dumpfiles (r1351009, -3745)
+    * new --drop-all-emtpy-revs option for 'svndumpfilter' (issue #3681)
+    * client version info now reported to commit hooks (issue #4124)
+    * 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)
     * directory and property deltification option in FSFS (issue #4084)
@@ -86,50 +151,151 @@ http://svn.apache.org/repos/asf/subversi
     * FSFS de-duplication now works for properties as well (r1243312)
     * read FSFS data using fewer fopen calls (issue #3372)
     * 'svnadmin verify' will now check meta data (issues #3956, #4211)
+    * 'svnadmin verify' now checks for issue #4129 style corruption (r1304656)
     * new --client-speed option for svnserve (r1391788)
+    * new --single-threaded option in svnserve (r1296018)
     * hook script templates are now marked as executable (r1153414)
-    * svn:ignore __pycache__ directories by default (r1150073)
-    * 'svn diff --git' include copyfrom revision in "copied" headers (r1155279)
-    * svn:mergeinfo related operations now use much less memory (r1149519 et al)
-    * get list of supported schemes for RA libraries (r1148134)
-    * 'svn checkout' skips file externals from unintended repositories (r1153110)
-    * return an error when conflicts could not be resolved (r1150439)
-    * let HTTPv2-aware clients fetch v2-style resources (r1161202)
-    * 'svn status' with better NLS support (r1157537, -682)
     * error out on non-canonical fspaths in the authz file (r1166111)
-    * improve error messages (r1212823, r1212463)
-    * better tracking of shallow-yet-complete merges (issues #4056, #4057)
-    * improve performance of mergeinfo elision (r1208739)
-    * make 'svn status --quiet' w/ externals quieter still (issue #1935)
-    * ensure that all paths shown in 'svn status' are relative-ized (r1202425)
-    * improve performance of local multi-target deletions (r1195873)
-    * apply update ops to locally moved-away dirs (r1183358, r1185110, r1185392)
+    * improve path lookup performance in FSFS (r1442088)
+    * 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)
+    * new fsfs-stats tool which prints FSFS repository stats (r1410995)
+    * new fsfs-reorg tool to optimize FSFS packing (r1383214, r1385395)
+    * new --compatible-version option for 'svnadmin create' (r1407279 )
+    * new --ignore-properties option for 'svnlook diff' (r1407905)
+    * new --properties-only option for 'svnlook diff' (r1407905)
+    * new --diff-cmd option for 'svnlook diff' (r1413449)
+    * allow leading "r"'s in http: ?p= and ?r= query parameters (r1221463)
+    * faster 'svn ls' for large directories (r1296627)
+    * 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)
+    * FSFS verifies revisions as they are added (r1462409)
 
   - Client-side bugfixes:
     * fix inconsistent 'svn log' output for empty revisions (issue #3964)
+    * fix mis-ordered text output of 'svn log --diff' on Windows (r1220783)
+    * fix 'svn log --diff' on moved file (issue #4153).
     * fix 'svn revert' of 'svn move' (issue #876)
-    * fix 'wrong 'status' of file externals "resurrecting" a deleted file (#4017)
+    * fix file externals wrongly "resurrecting" a deleted file (#4017)
     * fix reporting of corrupted 1.6 w/cs by 'svn upgrade' (r1182904, -9)
     * fix bug caused by URI-decoding local merge source paths (r1210539)
+    * fix properties out of sync with repos after merge and revert (issue #4305)
+    * fix merge of replacement on local delete fails (issue #4011)
+    * fix replacements on deletes produce wrong tree conflicts (issue #3806)
+    * made ra_serf handle location headers that are not RFC-compliant (r1443906)
+    * merge no longer errors out after resolving all conflicts (issue #4316)
+    * fix svn blame mis-categorizing file type as binary (issue #2089)
+    * fix externals not removed when working copy is made shallow (issue #3741)
+    * fix update under add with not-present parent (issue #4111)
+    * fix revert of files with svn:needs-lock under copied dirs (r1343168)
+    * fix repos->wc diff of local copied/moved-here directories (r1341927)
+    * fix repos->wc diff of local copied/moved-here files (r1341544)
+    * fix "svn diff -cN PATH" where PATH was deleted in rN (r1338708)
+    * fix dependency on APR hash order in several logic paths (r1338350 et al)
+    * fix path inconsistencies in 'svn diff' output (r1338291)
+    * fix misleading error message printed by 'svn switch' (issue #2337)
+    * fix bug in mergeinfo recording during foreign-repos merge (r1430310)
+    * fix spurious merge conflicts for binary files with keywords (issue #4221)
+    * fix patching symlinks with 'svn patch' (issue #4273)
+    * make 'svn switch' refresh lock information (issue #3376)
+    * fix 'svn diff' output doesn't apply as patch without fuzz (issue #3362)
+    * fix mergeinfo recording for multiple-revision-range merge (issue #4306)
+    * fix diffs shown by 'show-diff' conflict prompt option (r1438879)
+    * don't print an update summary header with no content (r1439480)
+    * make 'svn rm' remove externals registrations below its targets (r1361256)
+    * fix crashes in ra_serf where AVG 2012 Surf-Shield is in use (issue #4175)
+    * don't raise conflicts on identical binary files (issue #4128)
+    * improve error messages when wc.db missing (issue #4118)
+    * fix 'svn diff' showing wrong text change (issue #4270)
+    * fix 'svn diff -rN' failing to show local replace (issue #3797)
+    * fix 'svn diff' showing wrong revision (issue #4010)
+    * fix 'svn merge' showing spurious notifications (issue #2910)
+    * parse '.@HEAD' correctly (issue #3606)
+    * fix 'svn revert' after conflict in sparse working copy (issue #4168)
+    * fix bug in global/per-server config handling in serf (r1421516)
+    * properly display errors from serf (r1398742)
+    * fix crash in ra_serf (r1408291)
+    * fixed svnmucc propset and propdel on repository root (issue #3663)
+    * fix 'svn info' output with ancient svnserve servers (pre-1.2) (r1409732)
+    * ra_serf shows error message for 408 Request Timeout response (r1410983)
+    * fix handling of "\ No newline ..." in diff/patch (r1411723, r1412382)
+    * allow infinite http timeout in ra_serf (r1411976)
+    * using unknown svn: property names now requires --force (issue #4261)
+    * fix handling of case insensitive configuration files (r1215089)
+    * properly handle errors during password caching (r1380695)
+    * fix svnversion output not always a number (issue #4226)
+    * fix conflict resolver losing executable bit of a file (r1391019)
+    * fix redundant notifications when merging with ra_serf (issue #3802)
+    * fix 'svn add --force /path/to/wcroot' should work (issue #4241)
+    * fix file permissions changed after commit (issue #4331)
+    * improve handling of http errors in ra_serf (1452792, 1452870)
+    * include checksum of missing pristines in error message (r1452800)
+    * fix an assert when merging against a replaced source (issue #4132)
+    * fix replacement in merge source has incorrect notification (issue #4138)
+    * improve performance of checkout (r1453791)
+    * fixed documentation regarding merge source (issue #3247)
+    * fix merge errors out after resolving conflicts (issue #4316)
+    * fix delete/move with file external in unversioned dir (issue #4293)
+    * fix resolving tree conflict with local node missing (r1461848)
+    * fix invalid read during diff suffix scanning (issue #4339)
+    * fix assertion when running 'svn log <SOME_URL>@PREV' (r1462134)
+    * optimize enumerating configuration options (r1464478)
+    * revert will now sleep for timestamps if using commit times (r1464769)
+    * don't allow externals to be deleted with 'svn rm' (r1464992)
+    * improved memory usage in ra_serf and ra_local (r1465280)
+    * replace some assertions with more helpful error messages (r1465975)
+    * fixed long keyword expansion truncated (issue #4349)
 
   - Server-side bugfixes:
     * SVNParentPath / repository listing now authz-filtered (r1408184)
-    * user and group names in the authz config file are case-sensitive (r1475772)
+    * user/group names in the authz config file are case-sensitive (r1475772)
     * limit commit runtime for nodes with very deep histories (r1224836)
     * 'svnadmin recover' truncates rep-cache at the right point (issue #4077)
     * fix crashes in dumpstream loading with skipped revs (r1214202, r1214216)
     * fix 'svn log -g' incorrectly treating rename as merge (issue #4022)
+    * fix bug where fsfs file-hinting fails (issue #4320)
+    * don't leak path of repository on server's disk to clients (r1330906)
+    * remove spurious is-fresh-txn-root from empty revision files (issue #4031)
+    * fix a stdout handling problem in 'svnlook diff' (r1411971)
+    * fix erratic behaviour in 'svnlook diff' showing property diffs (r1412224)
+    * fix inconsistent authz error messages in 'svn log' in svnserve (r1292462)
+    * fix svndumpfilter for empty paths in included or excluded lists (r1294583)
+    * make fsfs packing threadsafe (r1376011)
+    * don't error out on intermittent memcached failures (r1394470)
+    * fix a ra_svn deadlock with zero-copy server option (r1465622)
 
   - Other tool improvements and bugfixes:
-    * 'svnmucc' promoted to first-class supported utility (issue #3308)
+    * 'svnmucc' promoted to first-class supported utility (issue #3308, #4279)
+    * make 'svnmucc' prompt for log messages (issue #3418)
     * rename 'svnauthz-validate' to 'svnauthz' (issue #4284)
     * make 'svnauthz' optionally validate user/path access (r1197588)
+    * fix mailer.py test suite problems (r1449582)
+    * fix mailer.py not showing dirs with property deletions (r1449582)
+    * 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)
   
  Developer-visible changes:
   - General:
     * now require Python 2.5 for tests and dev tools (r1243627)
     * now require bzip2 for tests and dev tools (r1148512)
-    * new require httpd version 2.2.21 for builds with Apache (r1174039)
     * configure defaults to --without-apache-libexecdir (r1469862)
     * support builds with APR pool debugging (r1176894)
     * 'make extraclean' is more thorough now (r1149460)
@@ -139,17 +305,65 @@ http://svn.apache.org/repos/asf/subversi
     * rework switch statement to accomodate OWC compiler limitations (r1204407)
     * new --enable-sqlite-compatibility-version configure option (r1201421)
     * make test suite LD_LIBRARY_PATH include just-built auth plugins (r1200474)
+    * packages/ directory removed, contents were outdated and unused (r1442167)
+    * rename 'makefile.ezt' to 'build-outputs.mk.ezt' (r1444822)
+    * use expensive compiler optimizations with --enable-optimize (r1445063)
+    * in Visual C++ builds, move temp files to different directory (r1446416)
+    * remove --with-ssl and --with-gssapi configure options (r1449023)
+    * require at least serf 1.2.0 as build dependency (issue #4296)
+    * fix error tracing to record file/line properly (r1331242)
+    * add --log-level argument to win-tests.py (r1335461)
+    * improve GDB pretty-printing of svn types (r1351336, r1364750, r1365035)
+    * load third-party FS modules (if --enable-runtime-module-search) (r1362434)
+    * enable running the regression tests over https (r1349699)
+    * support 'make davautocheck' on OS X (r1421583)
+    * new '--enable-gcov' configure option (r1416646)
+    * 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 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)
+    * don't strip Content-Type header form .po files on Windows (r1380056)
+    * configure now script auto-detects GNOME keyring (r1387230)
+    * allow configure to detect BDB on Debian-based Linux distros (r1390633)
+    * auto-detect serf via pkg-config (r1391662)
+    * improve queries for compatability with SQLite 3.7.16 (r1455239)
+    * remove support for in-tree apr, apr-util and apr-memcache (r1456924)
+    * FSFS caching supports prefixes now (r1462436)
+    * maintainer mode now prints symbolic error codes (r1465157)
+    * don't require NLS support for kwallet support (r1466445)
 
   - API changes:
     * fix inconsistent handling of log revs without changed paths (issue #3694)
-    * new type svn_kind_t to replace svn_node_kind_t (r1181800)
     * deprecated SVN_ERR_SQLITE_UNSUPPORTED_SCHEMA (r1173240)
+    * provide API to clear cached auth credentials (issue #2775)
+    * improve repository location information in various APIs (issue #4170)
+    * major rewrite of conflict storage and handling APIs (r1354973 et al)
+    * hide (deprecate) svn_wc APIs that use editors (r1243339)
+    * svn_stringbuf_ensure() allocates an extra byte for terminator (r1308966)
+    * switch and update apis are now more consistent (r1465292)
+    * deprecated svn_client_merge_reintegrate (r1466742)
+    * deprecated low level ra_svn apis (r1466907)
 
   - Bindings:
     * star-imports in swig-py only import 'svn_*' symbols (r1303375)
     * fix compilation of Perl bindings on Mandriva 2007 (issue #2617)
-    * fix Python build on OpenBSD >= 5.0. (r1178846)
     * new JavaHL testing targets (r1182983)
+    * enable returning an error on malfunctions for JavaHL (r1366215)
+    * MacOS X build fix to cope with missing GNOME keyring (r1397844)
+    * fix swig bindings tests on MacOS X (r1397846)
+    * fix assertion failure in JavaHL error reporting (r1405922)
+    * support ruby 1.9 (r1407206)
+    * JavaHL: Include OSGI Manifest information in svn-javahl.jar (r1234864)
+    * new svn_auth_set_gnome_keyring_unlock_prompt_func function (r1241554)
+    * fix svn_txdelta window ops for python bindings (r1389054)
+    * fix build of Perl bindings with newer versions of SWIG (r1389658)
+    * add missing API functions to Perl bindings (issue #2646)
+    * add missing API functions to Python bindings (r1392038 et al)
+    * add missing API functions to JavaHL bindings (issue #4326)
+    * fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
 
 
 Version 1.7.9

Modified: subversion/branches/fsfs-format7/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build.conf?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build.conf (original)
+++ subversion/branches/fsfs-format7/build.conf Thu May 16 22:03:58 2013
@@ -244,7 +244,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/fsfs-format7/build/ac-macros/compiler.m4
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/ac-macros/compiler.m4?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/fsfs-format7/build/ac-macros/compiler.m4 Thu May 16 22:03:58 2013
@@ -66,14 +66,13 @@ AC_DEFUN([SVN_CC_MODE_SETUP],
     ])
   ])
 
-  dnl clang does not (always?) error out on unknown compiler
-  dnl options so silence the diagnostics emitted for warning options
-  SVN_CFLAGS_ADD_IFELSE([-Wno-unknown-warning-option])
-
   CMODEFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS_KEEP"
   AC_SUBST(CMODEFLAGS)
   AC_SUBST(CMAINTAINERFLAGS)
+
+  dnl Tell clang to not accept unknown warning flags
+  SVN_CFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
 ])
 
 
@@ -86,12 +85,11 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
                 dnl g++ and clang++
   SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
 
-  dnl clang++ does not (always?) error out on unknown compiler
-  dnl options so silence the diagnostics emitted for warning options
-  SVN_CXXFLAGS_ADD_IFELSE([-Wno-unknown-warning-option])
-
   CXXMODEFLAGS="$CXXFLAGS"
   CXXFLAGS="$CXXFLAGS_KEEP"
   AC_SUBST(CXXMODEFLAGS)
   AC_SUBST(CXXMAINTAINERFLAGS)
+
+  dnl Tell clang++ to not accept unknown warning flags
+  SVN_CXXFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
 ])

Modified: subversion/branches/fsfs-format7/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/gen_win.py?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/gen_win.py (original)
+++ subversion/branches/fsfs-format7/build/generator/gen_win.py Thu May 16 22:03:58 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")):

Modified: subversion/branches/fsfs-format7/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/configure.ac?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/configure.ac (original)
+++ subversion/branches/fsfs-format7/configure.ac Thu May 16 22:03:58 2013
@@ -1137,6 +1137,13 @@ elif test "$enable_optimization" = "no";
 #   # do nothing
 fi
 
+dnl Dump the current compiler options
+AC_MSG_NOTICE([C compiler flags: $CFLAGS])
+AC_MSG_NOTICE([    user-defined: $CUSERFLAGS])
+AC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
+AC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
+AC_MSG_NOTICE([      user-defined: $CXXUSERFLAGS])
+AC_MSG_NOTICE([   maintainer-mode: $CXXMAINTAINERFLAGS])
 
 AC_ARG_ENABLE(full-version-match,
 AS_HELP_STRING([--disable-full-version-match],

Modified: subversion/branches/fsfs-format7/subversion/bindings/ctypes-python/test/svntypes.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/ctypes-python/test/svntypes.py?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/ctypes-python/test/svntypes.py (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/ctypes-python/test/svntypes.py Thu May 16 22:03:58 2013
@@ -35,7 +35,8 @@ class SvnDateTestCase(unittest.TestCase)
     def test_as_human_string(self):
         d1 = SvnDate('1999-12-31T23:59:59.000000Z')
         s1 = d1.as_human_string()
-        self.assertEqual(s1[:27], '1999-12-31 23:59:59 +0000 (')
+        self.assertRegexpMatches(s1[:27],
+            r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [+-]\d{4} \(')
 
 
 class HashTestCase(unittest.TestCase):

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp Thu May 16 22:03:58 2013
@@ -179,7 +179,7 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
       apr_allocator_max_free_set(allocator, 1);
     }
 
-  svn_utf_initialize2(g_pool, FALSE); /* Optimize character conversions */
+  svn_utf_initialize2(FALSE, g_pool); /* Optimize character conversions */
   svn_fs_initialize(g_pool); /* Avoid some theoretical issues */
   svn_ra_initialize(g_pool);
 

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_containers.swg?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_containers.swg Thu May 16 22:03:58 2013
@@ -600,11 +600,11 @@
 #endif
 #ifdef SWIGPERL
 %typemap(in) const apr_array_header_t *STRINGLIST {
-    $1 = (apr_array_header_t *) svn_swig_pl_strings_to_array($input,
+    $1 = svn_swig_pl_strings_to_array($input,
                                                              _global_pool);
 }
 %typemap(in) const apr_array_header_t *STRINGLIST_MAY_BE_NULL {
-    $1 = SvOK($input) ? (apr_array_header_t *) svn_swig_pl_strings_to_array(
+    $1 = SvOK($input) ? svn_swig_pl_strings_to_array(
         $input, _global_pool) : NULL;
 }
 #endif
@@ -646,7 +646,7 @@
 */
 #ifdef SWIGPERL
 %typemap(in) apr_array_header_t *providers {
-    $1 = (apr_array_header_t *) svn_swig_pl_objs_to_array($input,
+    $1 = svn_swig_pl_objs_to_array($input,
       $descriptor(svn_auth_provider_object_t *), _global_pool);
 }
 #endif

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Thu May 16 22:03:58 2013
@@ -227,10 +227,9 @@ apr_hash_t *svn_swig_pl_hash_to_prophash
 }
 
 /* perl -> c array convertors */
-static const
-apr_array_header_t *svn_swig_pl_to_array(SV *source,
-                                         pl_element_converter_t cv,
-                                         void *ctx, apr_pool_t *pool)
+static apr_array_header_t *svn_swig_pl_to_array(SV *source,
+                                                pl_element_converter_t cv,
+                                                void *ctx, apr_pool_t *pool)
 {
     int targlen;
     apr_array_header_t *temp;
@@ -259,15 +258,15 @@ apr_array_header_t *svn_swig_pl_to_array
     return temp;
 }
 
-const apr_array_header_t *svn_swig_pl_strings_to_array(SV *source,
+apr_array_header_t *svn_swig_pl_strings_to_array(SV *source,
                                                        apr_pool_t *pool)
 {
   return svn_swig_pl_to_array(source, convert_pl_string, NULL, pool);
 }
 
-const apr_array_header_t *svn_swig_pl_objs_to_array(SV *source,
-						    swig_type_info *tinfo,
-						    apr_pool_t *pool)
+apr_array_header_t *svn_swig_pl_objs_to_array(SV *source,
+					      swig_type_info *tinfo,
+					      apr_pool_t *pool)
 {
   return svn_swig_pl_to_array(source,
                               (pl_element_converter_t)convert_pl_obj,
@@ -282,7 +281,7 @@ const apr_array_header_t *svn_swig_pl_ob
  * 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(
+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;

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Thu May 16 22:03:58 2013
@@ -81,7 +81,7 @@ SV *svn_swig_pl_convert_hash(apr_hash_t 
 
 SV *svn_swig_pl_convert_hash_of_revnum_t(apr_hash_t *hash);
 
-const apr_array_header_t *svn_swig_pl_strings_to_array(SV *source,
+apr_array_header_t *svn_swig_pl_strings_to_array(SV *source,
                                                        apr_pool_t *pool);
 
 apr_hash_t *svn_swig_pl_strings_to_hash(SV *source,
@@ -94,10 +94,10 @@ apr_hash_t *svn_swig_pl_objs_to_hash_by_
 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,
+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(
+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);

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/greek_tree.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/greek_tree.rb?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/greek_tree.rb (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/greek_tree.rb Thu May 16 22:03:58 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/fsfs-format7/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/test_client.rb?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/test_client.rb Thu May 16 22:03:58 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/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb Thu May 16 22:03:58 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
@@ -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/fsfs-format7/subversion/bindings/swig/ruby/test/windows_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/windows_util.rb?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/windows_util.rb (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/windows_util.rb Thu May 16 22:03:58 2013
@@ -93,27 +93,61 @@ 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
+            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

Modified: subversion/branches/fsfs-format7/subversion/include/private/svn_string_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/private/svn_string_private.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/private/svn_string_private.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/private/svn_string_private.h Thu May 16 22:03:58 2013
@@ -136,6 +136,14 @@ svn_stringbuf__morph_into_string(svn_str
 apr_status_t
 svn__strtoff(apr_off_t *offset, const char *buf, char **end, int base);
 
+/** Like strtoul but with a fixed base of 10 and without overflow checks.
+ * This allows the compiler to generate massively faster (4x on 64bit LINUX)
+ * code.  Overflow checks may be added on the caller side where you might
+ * want to test for a more specific value range anyway.
+ */
+unsigned long
+svn__strtoul(const char *buffer, char **end);
+
 /** Number of chars needed to represent signed (19 places + sign + NUL) or
  * unsigned (20 places + NUL) integers as strings.
  */

Modified: subversion/branches/fsfs-format7/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_error.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_error.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_error.h Thu May 16 22:03:58 2013
@@ -613,6 +613,11 @@ typedef svn_error_t *(*svn_error_malfunc
 svn_error_malfunction_handler_t
 svn_error_set_malfunction_handler(svn_error_malfunction_handler_t func);
 
+/** Return the malfunction handler that is currently in effect.
+ * @since New in 1.9. */
+svn_error_malfunction_handler_t
+svn_error_get_malfunction_handler(void);
+
 /** Handle a malfunction by returning an error object that describes it.
  *
  * When @a can_return is false, abort()

Modified: subversion/branches/fsfs-format7/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_fs.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_fs.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_fs.h Thu May 16 22:03:58 2013
@@ -2524,7 +2524,7 @@ svn_fs_pack(const char *db_path,
  * verifications as well.
  *
  * @note To ensure a full verification using all tests and covering all
- * revisions, you must call this function *and* #svn_fs_verify_rev.
+ * revisions, you must call this function *and* #svn_fs_verify_root.
  *
  * @note Implementors, please do tests that can be done efficiently for
  * a single revision in #svn_fs_verify_root.  This function is meant for

Modified: subversion/branches/fsfs-format7/subversion/include/svn_hash.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_hash.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_hash.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_hash.h Thu May 16 22:03:58 2013
@@ -240,20 +240,36 @@ 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.
  */
 #define svn_hash_sets(ht, key, val) \
             apr_hash_set(ht, key, APR_HASH_KEY_STRING, val)
 
+/** Shortcut for apr_hash_get() with a fixed-size char[] key.
+ * @note Do NOT use this with pointer types like const char*.
+ *
+ * @since New in 1.9.
+ */
+#define svn_hash_gets_fixed_key(ht, key) \
+            apr_hash_get(ht, key, sizeof(key)-1)
+
+/** Shortcut for apr_hash_get() with a fixed-size char[] key.
+ * @note Do NOT use this with pointer types like const char*.
+ *
+ * @since New in 1.9.
+ */
+#define svn_hash_sets_fixed_key(ht, key, val) \
+            apr_hash_set(ht, key, sizeof(key)-1, val)
+
 /** @} */
 
 /** @} */

Modified: subversion/branches/fsfs-format7/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_path.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_path.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_path.h Thu May 16 22:03:58 2013
@@ -716,6 +716,14 @@ svn_path_resolve_repos_relative_url(cons
                                     const char *repos_root_url,
                                     apr_pool_t *pool);
 
+/* Return a copy of @a path, allocated from @a pool, for which control
+ * characters have been escaped using the form \NNN (where NNN is the
+ * octal representation of the byte's ordinal value).
+ * 
+ * @since New in 1.9. */
+const char *
+svn_path_illegal_path_escape(const char *path, apr_pool_t *pool);
+
 /** @} */
 
 #ifdef __cplusplus

Modified: subversion/branches/fsfs-format7/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_types.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_types.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_types.h Thu May 16 22:03:58 2013
@@ -75,7 +75,9 @@ extern "C" {
  * @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

Modified: subversion/branches/fsfs-format7/subversion/include/svn_utf.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_utf.h?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_utf.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_utf.h Thu May 16 22:03:58 2013
@@ -63,8 +63,8 @@ extern "C" {
  * @since New in 1.8.
  */
 void
-svn_utf_initialize2(apr_pool_t *pool,
-                    svn_boolean_t assume_native_utf8);
+svn_utf_initialize2(svn_boolean_t assume_native_utf8,
+                    apr_pool_t *pool);
 
 /**
  * Like svn_utf_initialize2() but without the ability to force the

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/add.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/add.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/add.c Thu May 16 22:03:58 2013
@@ -696,23 +696,21 @@ svn_client__get_all_auto_props(apr_hash_
         apr_palloc(scratch_pool, sizeof(*new_iprop));
       new_iprop->path_or_url = path_or_url;
       new_iprop->prop_hash = apr_hash_make(scratch_pool);
-      svn_hash_sets(new_iprop->prop_hash, SVN_PROP_INHERITABLE_AUTO_PROPS,
-                    config_auto_prop);
+      svn_hash_sets_fixed_key(new_iprop->prop_hash,
+                              SVN_PROP_INHERITABLE_AUTO_PROPS,
+                              config_auto_prop);
       APR_ARRAY_PUSH(inherited_config_auto_props,
                      svn_prop_inherited_item_t *) = new_iprop;
     }
 
   for (i = 0; i < inherited_config_auto_props->nelts; i++)
     {
-      apr_hash_index_t *hi;
       svn_prop_inherited_item_t *elt = APR_ARRAY_IDX(
         inherited_config_auto_props, i, svn_prop_inherited_item_t *);
+      const svn_string_t *propval =
+        svn_hash_gets(elt->prop_hash, SVN_PROP_INHERITABLE_AUTO_PROPS);
 
-      for (hi = apr_hash_first(scratch_pool, elt->prop_hash);
-           hi;
-           hi = apr_hash_next(hi))
         {
-          const svn_string_t *propval = svn__apr_hash_index_val(hi);
           const char *ch = propval->data;
           svn_stringbuf_t *config_auto_prop_pattern;
           svn_stringbuf_t *config_auto_prop_val;
@@ -799,8 +797,8 @@ svn_error_t *svn_client__get_inherited_i
         apr_palloc(scratch_pool, sizeof(*new_iprop));
       new_iprop->path_or_url = path_or_url;
       new_iprop->prop_hash = apr_hash_make(scratch_pool);
-      svn_hash_sets(new_iprop->prop_hash, SVN_PROP_INHERITABLE_IGNORES,
-                    explicit_prop);
+      svn_hash_sets_fixed_key(new_iprop->prop_hash,
+                              SVN_PROP_INHERITABLE_IGNORES, explicit_prop);
       APR_ARRAY_PUSH(inherited_ignores,
                      svn_prop_inherited_item_t *) = new_iprop;
     }
@@ -811,8 +809,8 @@ svn_error_t *svn_client__get_inherited_i
     {
       svn_prop_inherited_item_t *elt = APR_ARRAY_IDX(
         inherited_ignores, i, svn_prop_inherited_item_t *);
-      svn_string_t *ignore_val = svn_hash_gets(elt->prop_hash,
-                                               SVN_PROP_INHERITABLE_IGNORES);
+      svn_string_t *ignore_val =
+        svn_hash_gets_fixed_key(elt->prop_hash, SVN_PROP_INHERITABLE_IGNORES);
       if (ignore_val)
         svn_cstring_split_append(*ignores, ignore_val->data, "\n\r\t\v ",
                                  FALSE, result_pool);

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c Thu May 16 22:03:58 2013
@@ -1974,8 +1974,8 @@ svn_client__ensure_revprop_table(apr_has
     {
       new_revprop_table = apr_hash_make(pool);
     }
-  svn_hash_sets(new_revprop_table, SVN_PROP_REVISION_LOG,
-                svn_string_create(log_msg, pool));
+  svn_hash_sets_fixed_key(new_revprop_table, SVN_PROP_REVISION_LOG,
+                          svn_string_create(log_msg, pool));
   *revprop_table_out = new_revprop_table;
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c Thu May 16 22:03:58 2013
@@ -1675,7 +1675,7 @@ repos_to_wc_copy_single(svn_boolean_t *t
                               &pair->src_revnum, &new_props, pool));
 
       if (new_props && ! same_repositories)
-        svn_hash_sets(new_props, SVN_PROP_MERGEINFO, NULL);
+        svn_hash_sets_fixed_key(new_props, SVN_PROP_MERGEINFO, NULL);
 
       *timestamp_sleep = TRUE;
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/import.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/import.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/import.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/import.c Thu May 16 22:03:58 2013
@@ -593,6 +593,9 @@ import_dir(const svn_delta_editor_t *edi
  * DEPTH is the depth at which to import PATH; it behaves as for
  * svn_client_import4().
  *
+ * BASE_REV is the revision to use for the root of the commit. We
+ * checked the preconditions against this revision.
+ *
  * NEW_ENTRIES is an ordered array of path components that must be
  * created in the repository (where the ordering direction is
  * parent-to-child).  If PATH is a directory, NEW_ENTRIES may be empty
@@ -641,6 +644,7 @@ import(const char *local_abspath,
        const svn_delta_editor_t *editor,
        void *edit_baton,
        svn_depth_t depth,
+       svn_revnum_t base_rev,
        apr_hash_t *excludes,
        apr_hash_t *autoprops,
        apr_array_header_t *local_ignores,
@@ -662,11 +666,9 @@ import(const char *local_abspath,
   import_ctx->autoprops = autoprops;
   svn_magic__init(&import_ctx->magic_cookie, pool);
 
-  /* Get a root dir baton.  We pass an invalid revnum to open_root
-     to mean "base this on the youngest revision".  Should we have an
-     SVN_YOUNGEST_REVNUM defined for these purposes? */
-  SVN_ERR(editor->open_root(edit_baton, SVN_INVALID_REVNUM,
-                            pool, &root_baton));
+  /* Get a root dir baton.  We pass the revnum we used for testing our
+     assumptions and obtaining inherited properties. */
+  SVN_ERR(editor->open_root(edit_baton, base_rev, pool, &root_baton));
 
   /* Import a file or a directory tree. */
   SVN_ERR(svn_io_stat_dirent2(&dirent, local_abspath, FALSE, FALSE,
@@ -809,6 +811,9 @@ svn_client_import5(const char *path,
   apr_hash_t *autoprops = NULL;
   apr_array_header_t *global_ignores;
   apr_array_header_t *local_ignores_arr;
+  svn_revnum_t base_rev;
+  apr_array_header_t *inherited_props = NULL;
+  apr_hash_t *url_props = NULL;
 
   if (svn_path_is_url(path))
     return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
@@ -849,10 +854,11 @@ svn_client_import5(const char *path,
   SVN_ERR(svn_client_open_ra_session2(&ra_session, url, NULL,
                                       ctx, scratch_pool, iterpool));
 
+  SVN_ERR(svn_ra_get_latest_revnum(ra_session, &base_rev, iterpool));
+
   /* Figure out all the path components we need to create just to have
      a place to stick our imported tree. */
-  SVN_ERR(svn_ra_check_path(ra_session, "", SVN_INVALID_REVNUM, &kind,
-                            iterpool));
+  SVN_ERR(svn_ra_check_path(ra_session, "", base_rev, &kind, iterpool));
 
   /* We can import into directories, but if a file already exists, that's
      an error. */
@@ -871,8 +877,7 @@ svn_client_import5(const char *path,
       APR_ARRAY_PUSH(new_entries, const char *) = dir;
       SVN_ERR(svn_ra_reparent(ra_session, url, iterpool));
 
-      SVN_ERR(svn_ra_check_path(ra_session, "", SVN_INVALID_REVNUM, &kind,
-                                iterpool));
+      SVN_ERR(svn_ra_check_path(ra_session, "", base_rev, &kind, iterpool));
     }
 
   /* Reverse the order of the components we added to our NEW_ENTRIES array. */
@@ -895,6 +900,17 @@ svn_client_import5(const char *path,
   SVN_ERR(svn_client__ensure_revprop_table(&commit_revprops, revprop_table,
                                            log_msg, ctx, scratch_pool));
 
+  /* Obtain properties before opening the commit editor, as at that point we are
+     not allowed to use the existing ra-session */
+  if (! no_ignore /*|| ! no_autoprops*/)
+    {
+      SVN_ERR(svn_ra_get_dir2(ra_session, NULL, NULL, &url_props, "",
+                              base_rev, SVN_DIRENT_KIND, scratch_pool));
+
+      SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props, "", base_rev,
+                                         scratch_pool, iterpool));
+    }
+
   /* Fetch RA commit editor. */
   SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
                         svn_client__get_shim_callbacks(ctx->wc_ctx,
@@ -907,8 +923,13 @@ svn_client_import5(const char *path,
   /* Get inherited svn:auto-props, svn:global-ignores, and
      svn:ignores for the location we are importing to. */
   if (!no_autoprops)
-    SVN_ERR(svn_client__get_all_auto_props(&autoprops, url, ctx,
-                                           scratch_pool, iterpool));
+    {
+      /* ### This should use inherited_props and url_props to avoid creating
+             another ra session to obtain the same values, but using a possibly
+             different HEAD revision */
+      SVN_ERR(svn_client__get_all_auto_props(&autoprops, url, ctx,
+                                             scratch_pool, iterpool));
+    }
   if (no_ignore)
     {
       global_ignores = NULL;
@@ -916,38 +937,48 @@ svn_client_import5(const char *path,
     }
   else
     {
-      svn_opt_revision_t rev;
       apr_array_header_t *config_ignores;
-      apr_hash_t *local_ignores_hash;
+      svn_string_t *val;
+      int i;
+
+      global_ignores = apr_array_make(scratch_pool, 64, sizeof(const char *));
 
-      SVN_ERR(svn_client__get_inherited_ignores(&global_ignores, url, ctx,
-                                                scratch_pool, iterpool));
       SVN_ERR(svn_wc_get_default_ignores(&config_ignores, ctx->config,
                                          scratch_pool));
       global_ignores = apr_array_append(scratch_pool, global_ignores,
                                         config_ignores);
 
-      rev.kind = svn_opt_revision_head;
-      SVN_ERR(svn_client_propget5(&local_ignores_hash, NULL, SVN_PROP_IGNORE, url,
-                                  &rev, &rev, NULL, svn_depth_empty, NULL, ctx,
-                                  scratch_pool, scratch_pool));
+      val = svn_hash_gets(url_props, SVN_PROP_INHERITABLE_IGNORES);
+      if (val)
+        svn_cstring_split_append(global_ignores, val->data, "\n\r\t\v ",
+                                 FALSE, scratch_pool);
+
+      for (i = 0; i < inherited_props->nelts; i++)
+        {
+          svn_prop_inherited_item_t *elt = APR_ARRAY_IDX(
+            inherited_props, i, svn_prop_inherited_item_t *);
+
+          val = svn_hash_gets(elt->prop_hash, SVN_PROP_INHERITABLE_IGNORES);
+
+          if (val)
+            svn_cstring_split_append(global_ignores, val->data, "\n\r\t\v ",
+                                     FALSE, scratch_pool);
+        }
       local_ignores_arr = apr_array_make(scratch_pool, 1, sizeof(const char *));
 
-      if (apr_hash_count(local_ignores_hash))
+      val = svn_hash_gets(url_props, SVN_PROP_IGNORE);
+
+      if (val)
         {
-          svn_string_t *propval = svn_hash_gets(local_ignores_hash, url);
-          if (propval)
-            {
-              svn_cstring_split_append(local_ignores_arr, propval->data,
-                                       "\n\r\t\v ", FALSE, scratch_pool);
-            }
+          svn_cstring_split_append(local_ignores_arr, val->data,
+                                   "\n\r\t\v ", FALSE, scratch_pool);
         }
     }
 
   /* If an error occurred during the commit, abort the edit and return
      the error.  We don't even care if the abort itself fails.  */
   if ((err = import(local_abspath, new_entries, editor, edit_baton,
-                    depth, excludes, autoprops, local_ignores_arr,
+                    depth, base_rev, excludes, autoprops, local_ignores_arr,
                     global_ignores, no_ignore, no_autoprops,
                     ignore_unknown_node_types, filter_callback,
                     filter_baton, ctx, iterpool)))

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/list.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/list.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/list.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/list.c Thu May 16 22:03:58 2013
@@ -273,14 +273,15 @@ svn_client__ra_stat_compatible(svn_ra_se
 
                   SVN_ERR(svn_ra_rev_proplist(ra_session, rev, &props,
                                               pool));
-                  val = svn_hash_gets(props, SVN_PROP_REVISION_DATE);
+                  val = svn_hash_gets_fixed_key(props, SVN_PROP_REVISION_DATE);
                   if (val)
                     SVN_ERR(svn_time_from_cstring(&dirent->time, val->data,
                                                   pool));
                   else
                     dirent->time = 0;
 
-                  val = svn_hash_gets(props, SVN_PROP_REVISION_AUTHOR);
+                  val = svn_hash_gets_fixed_key(props,
+                                                SVN_PROP_REVISION_AUTHOR);
                   dirent->last_author = val ? val->data : NULL;
                 }
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/log.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/log.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/log.c Thu May 16 22:03:58 2013
@@ -221,11 +221,14 @@ pre_15_receiver(void *baton, svn_log_ent
           /* Pre-1.5 servers send the standard revprops unconditionally;
              clear those the caller doesn't want. */
           if (!want_author)
-            svn_hash_sets(log_entry->revprops, SVN_PROP_REVISION_AUTHOR, NULL);
+            svn_hash_sets_fixed_key(log_entry->revprops,
+                                    SVN_PROP_REVISION_AUTHOR, NULL);
           if (!want_date)
-            svn_hash_sets(log_entry->revprops, SVN_PROP_REVISION_DATE, NULL);
+            svn_hash_sets_fixed_key(log_entry->revprops,
+                                    SVN_PROP_REVISION_DATE, NULL);
           if (!want_log)
-            svn_hash_sets(log_entry->revprops, SVN_PROP_REVISION_LOG, NULL);
+            svn_hash_sets_fixed_key(log_entry->revprops,
+                                    SVN_PROP_REVISION_LOG, NULL);
         }
     }
   else

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c Thu May 16 22:03:58 2013
@@ -1104,7 +1104,8 @@ prepare_merge_props_changed(const apr_ar
                                                 scratch_pool));
 
               if (pristine_props
-                  && svn_hash_gets(pristine_props, SVN_PROP_MERGEINFO))
+                  && svn_hash_gets_fixed_key(pristine_props,
+                                             SVN_PROP_MERGEINFO))
                 has_pristine_mergeinfo = TRUE;
 
               if (!has_pristine_mergeinfo && prop->value)
@@ -2172,7 +2173,7 @@ merge_file_added(const char *relpath,
           pristine_props = right_props; /* Includes last_* information */
           new_props = NULL; /* No local changes */
 
-          if (svn_hash_gets(pristine_props, SVN_PROP_MERGEINFO))
+          if (svn_hash_gets_fixed_key(pristine_props, SVN_PROP_MERGEINFO))
             {
               alloc_and_store_path(&merge_b->paths_with_new_mergeinfo,
                                    local_abspath, merge_b->pool);
@@ -2200,7 +2201,7 @@ merge_file_added(const char *relpath,
           new_props = svn_prop_array_to_hash(regular_props, scratch_pool);
 
           /* Issue #3383: We don't want mergeinfo from a foreign repository. */
-          svn_hash_sets(new_props, SVN_PROP_MERGEINFO, NULL);
+          svn_hash_sets_fixed_key(new_props, SVN_PROP_MERGEINFO, NULL);
         }
 
       /* Do everything like if we had called 'svn cp PATH1 PATH2'. */
@@ -2967,7 +2968,7 @@ merge_dir_added(const char *relpath,
                                                 scratch_pool));
         }
 
-      if (svn_hash_gets(new_pristine_props, SVN_PROP_MERGEINFO))
+      if (svn_hash_gets_fixed_key(new_pristine_props, SVN_PROP_MERGEINFO))
         {
           alloc_and_store_path(&merge_b->paths_with_new_mergeinfo,
                                local_abspath, merge_b->pool);
@@ -2985,7 +2986,7 @@ merge_dir_added(const char *relpath,
 
       new_props = svn_prop_array_to_hash(regular_props, scratch_pool);
 
-      svn_hash_sets(new_props, SVN_PROP_MERGEINFO, NULL);
+      svn_hash_sets_fixed_key(new_props, SVN_PROP_MERGEINFO, NULL);
 
       /* ### What is the easiest way to set new_props on LOCAL_ABSPATH?
 
@@ -3194,7 +3195,7 @@ merge_dir_deleted(const char *relpath,
     {
       /* Record that we might have deleted mergeinfo */
       if (working_props
-          && svn_hash_gets(working_props, SVN_PROP_MERGEINFO))
+          && svn_hash_gets_fixed_key(working_props, SVN_PROP_MERGEINFO))
         {
           alloc_and_store_path(&merge_b->paths_with_deleted_mergeinfo,
                                local_abspath, merge_b->pool);

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c Thu May 16 22:03:58 2013
@@ -677,7 +677,7 @@ svn_client__get_wc_or_repos_mergeinfo_ca
           SVN_ERR(svn_wc_get_pristine_props(&original_props,
                                             ctx->wc_ctx, local_abspath,
                                             result_pool, scratch_pool));
-          if (!svn_hash_gets(original_props, SVN_PROP_MERGEINFO))
+          if (!svn_hash_gets_fixed_key(original_props, SVN_PROP_MERGEINFO))
             {
               apr_pool_t *sesspool = NULL;
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/repos_diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/repos_diff.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/repos_diff.c Thu May 16 22:03:58 2013
@@ -933,12 +933,12 @@ apply_textdelta(void *file_baton,
     }
 
   /* Open the file to be used as the base for second revision */
-  src_stream = svn_stream_lazyopen_create(lazy_open_source, fb, FALSE,
+  src_stream = svn_stream_lazyopen_create(lazy_open_source, fb, TRUE,
                                           scratch_pool);
 
   /* Open the file that will become the second revision after applying the
      text delta, it starts empty */
-  result_stream = svn_stream_lazyopen_create(lazy_open_result, fb, FALSE,
+  result_stream = svn_stream_lazyopen_create(lazy_open_result, fb, TRUE,
                                              scratch_pool);
 
   svn_txdelta_apply(src_stream,

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c Thu May 16 22:03:58 2013
@@ -373,7 +373,16 @@ default_warning_func(void *baton, svn_er
 {
   /* The one unforgiveable sin is to fail silently.  Dumping to stderr
      or /dev/tty is not acceptable default behavior for server
-     processes, since those may both be equivalent to /dev/null.  */
+     processes, since those may both be equivalent to /dev/null.
+
+     That said, be a good citizen and print something anyway, in case it goes
+     somewhere, and our caller hasn't overridden the abort() call.
+   */
+  if (svn_error_get_malfunction_handler()
+      == svn_error_abort_on_malfunction)
+    /* ### TODO: extend the malfunction API such that non-abort()ing consumers
+       ### also get the information on ERR. */
+    svn_handle_error2(err, stderr, FALSE /* fatal */, "svn: fs-loader: ");
   SVN_ERR_MALFUNCTION_NO_RETURN();
 }
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c Thu May 16 22:03:58 2013
@@ -5014,7 +5014,7 @@ txn_body_get_mergeinfo_data_and_entries(
 
           SVN_ERR(svn_fs_base__dag_get_proplist(&plist, child_node,
                                                 trail, iterpool));
-          pval = svn_hash_gets(plist, SVN_PROP_MERGEINFO);
+          pval = svn_hash_gets_fixed_key(plist, SVN_PROP_MERGEINFO);
           if (! pval)
             {
               svn_string_t *id_str = svn_fs_base__id_unparse(child_id,
@@ -5189,7 +5189,7 @@ txn_body_get_mergeinfo_for_path(void *ba
   svn_pool_destroy(iterpool);
 
   SVN_ERR(svn_fs_base__dag_get_proplist(&proplist, node, trail, trail->pool));
-  mergeinfo_string = svn_hash_gets(proplist, SVN_PROP_MERGEINFO);
+  mergeinfo_string = svn_hash_gets_fixed_key(proplist, SVN_PROP_MERGEINFO);
   if (! mergeinfo_string)
     {
       svn_string_t *id_str =

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c Thu May 16 22:03:58 2013
@@ -609,10 +609,24 @@ svn_fs_fs__dag_revision_root(dag_node_t 
                              svn_revnum_t rev,
                              apr_pool_t *pool)
 {
-  svn_fs_id_t *root_id;
+  dag_node_t *new_node;
 
-  SVN_ERR(svn_fs_fs__rev_get_root(&root_id, fs, rev, pool));
-  return svn_fs_fs__dag_get_node(node_p, fs, root_id, pool);
+  /* Construct the node. */
+  new_node = apr_pcalloc(pool, sizeof(*new_node));
+  new_node->fs = fs;
+  SVN_ERR(svn_fs_fs__rev_get_root(&new_node->id, fs, rev, pool));
+
+  /* Grab the contents so we can inspect the node's kind and created path. */
+  new_node->node_pool = pool;
+
+  /* Initialize the KIND and CREATED_PATH attributes */
+  new_node->kind = svn_node_dir;
+  new_node->created_path = "/";
+  new_node->fresh_root_predecessor_id = NULL;
+
+  /* Return a fresh new node */
+  *node_p = new_node;
+  return SVN_NO_ERROR;
 }
 
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c Thu May 16 22:03:58 2013
@@ -959,7 +959,7 @@ write_revision_zero(svn_fs_t *fs)
   date.data = svn_time_to_cstring(apr_time_now(), fs->pool);
   date.len = strlen(date.data);
   proplist = apr_hash_make(fs->pool);
-  svn_hash_sets(proplist, SVN_PROP_REVISION_DATE, &date);
+  svn_hash_sets_fixed_key(proplist, SVN_PROP_REVISION_DATE, &date);
   return set_revision_proplist(fs, 0, proplist, fs->pool);
 }
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c?rev=1483586&r1=1483585&r2=1483586&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c Thu May 16 22:03:58 2013
@@ -790,11 +790,7 @@ fold_change(apr_hash_t *changes,
 
 /* Examine all the changed path entries in CHANGES and store them in
    *CHANGED_PATHS.  Folding is done to remove redundant or unnecessary
-   *data.  If PREFOLDED is true, assume that
-   the changed-path entries have already been folded (by
-   write_final_changed_path_info) and may be out of order, so we shouldn't
-   remove children of replaced or deleted directories.  Do all
-   allocations in POOL. */
+   *data. Do all allocations in POOL. */
 static svn_error_t *
 process_changes(apr_hash_t *changed_paths,
                 apr_array_header_t *changes,
@@ -3347,6 +3343,9 @@ svn_fs_fs__commit(svn_revnum_t *new_rev_
        * We use an sqlite transaction to speed things up;
        * see <http://www.sqlite.org/faq.html#q19>.
        */
+      /* ### A commit that touches thousands of files will starve other
+             (reader/writer) commits for the duration of the below call.
+             Maybe write in batches? */
       SVN_SQLITE__WITH_TXN(
         write_reps_to_cache(fs, cb.reps_to_cache, pool),
         ffd->rep_cache_db);