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);