Modified: subversion/branches/fsx-1.10/CHANGES URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/CHANGES?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/CHANGES (original) +++ subversion/branches/fsx-1.10/CHANGES Sun Jun 14 20:58:10 2015 @@ -1,5 +1,5 @@ Version 1.9.0 -(?? ??? 2014, from /branches/1.9.x) +(?? ??? 2015, from /branches/1.9.x) http://svn.apache.org/repos/asf/subversion/tags/1.9.0 User-visible changes: @@ -8,66 +8,61 @@ http://svn.apache.org/repos/asf/subversi * flush stdout before exiting to avoid information being lost (r1543868) - Major new features: - * membuffer: virtually perfect short-term cache efficiency (r1476664 et at) - * membuffer: quadruple the maximum cacheable directory size (r1545948 et al) + * fsfs: new format 7 with more efficient on-disk layout (r1547045 et al) * resolve: improve interactive conflict resolution menus - * blame: allow -r M:N with M>N + * blame: support showing prospective as well as previous changes + * info: support printing of individual values with --show-item (r1662620) * svn auth: new subcommand to manage cached credentials and certs - * svn youngest: new remote version of svnlook youngest (issue #4299) - * new experimental filesystem fsx (faster, smaller) - * svnserve: cache config, authz and repos to lower resource usage and - be able to serve large numbers of connections with a limited number - of threads. - * fsfs: new format 7 with more efficient logical addressing (r1547045 et al) + * svnserve: cache config and authz to lower resource usage and be able to + serve large numbers of connections with a limited number of threads + * membuffer: quadruple the maximum cacheable directory size (r1545948 et al) + * new filesystem fsx (faster, smaller); experimental - see release notes - Minor new features and improvements: - * new 'diff-ignore-content-type' runtime configuration option. - * new option for 'svnadmin verify': --check-normalization. - * new option for 'svnadmin verify': --keep-going. - * svnadmin info: print info about a repository. - * print summary of conflicts before/after interactive conflict resolution. - * import: reduce number of connections to the server needed. (r1482962) + * new 'diff-ignore-content-type' runtime configuration option + * new option for 'svnadmin verify': --check-normalization + * new option for 'svnadmin verify': --keep-going + * svnadmin info: new subcommand to print info about a repository + * print summary of conflicts before/after interactive conflict resolution + * import: reduce number of connections to the server needed (r1482962) + * membuffer: rework cache eviction heuristics (r1476664 et at) * membuffer: improved cache usage statistics (r1489883) - * mergeinfo: New '--log' option (r1492168) + * mergeinfo: new '--log' option (r1492168) * svnadmin upgrade: progress and cancellation support (r1495545, r1495566) - * cleanup: add '--remove-unversioned' and '--remove-ignore' (issue #3549) + * cleanup: add '--remove-unversioned' and '--remove-ignored' (issue #3549) * cleanup: add '--include-externals' option (issue #2325) * cleanup: add '--quiet' option (r1498661) - * ra_serf: use better transition based XML processing (r1498858 et al) * svnadmin load: speedup by setting revprops in one call (r1504079) * svnadmin load: set svn:date revprop in the initial commit (r1504951) * reimplement UTF-8 fuzzy conversion using utf8proc (r1511676) * svnadmin verify: speed up for repos with large directories (r1520419) - * merge: interactive conflict merge option tries external tools (r1524145) + * svn merge: interactive conflict resolver tries external tools (r1524145) * minor speed up in string to time conversion (r1533387) - * list: remove some unnecessary work from implementation (r1533392) * windows: speed up console output (r1533994) - * update: optimize wc db usage (r1537065 et al) + * update: optimize wc db usage when obtaining children (r1537065 et al) * decreased overhead for case-sensitive configuration access (r1538068) * avoid re-opening repo for in-repo authz if already open (r1538120) - * only use revprop caching if supported efficiently (r1543593) * svnserve: output errors in a more standard way (r1544250) * faster parsing of config file comments (r1544716) * avoid trying to open the hooks-env file when it doesn't exist (r1544721) * svnserve: provide the same logging detail in "run once" mode as provided in the log file (r1544731) * svnserve: reduce connection latency (r1544732) - * wc: optimize SQLite queries against wc db (r154511) * wc: reduce the number of locks and transactions required (r1545127 et al) * cat: add '--ignore-keywords' option (r1547517) - * merge and mergeinfo: use fewer ra sessions (r1552265) + * merge and mergeinfo: use fewer RA sessions (r1552265) * fsfs: limit delta chains from crossing too many shards (r1554942) * fsfs: option to configure compression level in deltas (r1559748) - * fsfs: enable dir and prop deltas and compressed revprops by default for - fsfs formats that support it (r1555286) + * fsfs: enable dir and prop deltas by default for formats that support + it (r1555286) * fsfs: avoid out of date errors from files in a directory changing when you change a property on the directory (r1558224) * fsfs: temporary transaction properties are preserved when commit is interrupted (r1549907 et al) - * fsfs: don't try to read revprops for a new transaction (r1544719) - * fsfs: avoid trying to open digest files that don't exist (r1544721) - * fsfs: Use sorted array instead of hash for directory representation - internally, this minimizes some overhead (r1554711) + * fsfs: speed up transaction creation (r1544719) + * fsfs: avoid trying to open lock digest files that don't exist (r1544721) + * fsfs: reduce internal overhead by using sorted array instead of hash for + directory representation (r1554711) * fsfs: skip decoding txdelta windows that are already cached (r1555284) * fsfs: avoid constructing fulltext when delta we need is stored (r1555297) * fsfs: improvements to format 6 reading/writing (r1517479) @@ -90,42 +85,39 @@ http://svn.apache.org/repos/asf/subversi * ra_serf: pipeline lock/unlock requests (r1551918, r1551993, r1552008) * ra_serf: pipeline requests for inherited properties against old servers that don't support the faster REPORT (r1552455, r1552475) - * ra_serf: allow reuse of sessions after a timeout (r1557686) + * ra_serf: allow reuse of sessions after a canceled request (r1557686) * ra_serf: reduce memory usage when retrieving revision props (r1557689) - * svnrdump dump: reduce memory footprint (r1557736) * mod_dav_svn: make out of date error message consistent with generic repos logic (r1558247) - * wc: allow SQLite to optimize functions that are deterministic (r1559352) + * allow SQLite to optimize functions that are deterministic (r1559352) * speed up delta calculations on non-deltifyable sections (r1559767) * ra_serf: improve memory usage in commit processing (r1520028) * report progress as cumulative across all sessions (issue #3260) * ra_serf: don't send DAV headers with GET requests (r1517472) * mod_dav_svn: SVNCacheTextDeltas defaults to on (r1517479) - * fs: improve scability of fs_open and similar functions (r1523450 et al) - * svnserve: improve performance and scability (r1523465 et al) + * fs: improve scalability of fs_open and similar functions (r1523450 et al) + * svnserve: improve performance and scalability (r1523465 et al) * svnadmin verify: output progress messages to stdout (r1471095) * svnadmin crashtest: make output less misleading (r1486046) * mod_dav_svn: discover copy to src earlier in some cases (r1537440) * speed up mergeinfo parsing (r1483292, r1483309 et al) - * optimize hash lookups used throughout subversion (r1483434 et al) + * optimize hash lookups used in mergeinfo and caching (r1483434 et al) * log: optimize string handling in repos layer (r1483570, r1483572) - * ask hardware to sync instead of only syncing to hardware buffers when - OS supports it (r1484439, r1484445) + * ask disk hardware to sync instead of only syncing to hardware buffers + when OS supports it (r1484439, r1484445) * optimize diff code to avoid unneeded comparisons (r1485488) * optimize check if relpaths are canonical (r1485496, r1489828) * ra_svn: reduce protocol implementation overhead (r1485499, r1485504 et al) * optimize file translation without keyword substitution (r1486058) * optimize config file parsing by using unbuffered I/O (r1486897) * patch: apply ignore settings when deciding to delete dirs (r1490378) - * use a cheaper ra operation for common client calculation (r1496468 et al) + * use a cheaper RA operation for common client calculation (r1496468 et al) * ra_svn: avoid unnecessary work when doing a blame (r1503046) * optimize reading files into memory if size is known (r1505068) - * mod_authz_svn: log access denied messages as warnings (r1562417) * copy: do not error on properties when doing a foreign copy (r1563361) * membuffer: reduce memory usage by using shorter lived pools (r1564217) * svnadmin load: add '--ignore-dates' option (r1564789) * update: reduce sessions used with '--parents' option (r1565920) - * fix L1->L2 promotion/eviction heuristics for high hit counts (r1568599) * diff: report properties on deleted nodes (r1569320, r1570055) * diff: switch to diff processor APIs instead of old style callbacks, step towards resolving long standing bugs and feature requests (r1569551 et al) @@ -133,56 +125,187 @@ http://svn.apache.org/repos/asf/subversi of files (r1570053) * svnadmin lslocks: add cancellation (r1571992) * svn --version: list available authentication credential caches (r1572106) - * improved detection of changes between two nodes, this should reduce the - number of out of date errors clients see (r1572336) - * alow the use of libmagic to be configured via subversion configuration + * fs: improved detection of changes between two nodes, this should reduce + the number of out of date errors clients see (r1572336) + * allow the use of libmagic to be configured via subversion configuration file or SVN_CONFIG_OPTION_ENABLE_MAGIC_FILE env variable (r1572916) - * store human readable info about SSL certs in auth store (r1573625) + * new '--pin-externals' option for svn copy (issue #1258) + * the '--strict' option was renamed '--no-newline' (r1662224) + * merge/update: switch to three-way text conflict markers + (r1591951, r1595522) + * patch: handle renames in git formatted patches (r1594636) + * svnfsfs: new expert tool (r1594860) + * mod_dav_svn: allow server admin to GET the FSFS global cache stats + (r1595160) + * patch: support of svn:mergeinfo (issue #3747) + * diff: support git-like binary file diffs with '--git' (r1599552) + * diff: support arbitrary context size for internal diff tool with + '-U' option (r1603847, 1603871) + * commit: print progress notification between client finishing + transmitting text deltas and asking server to commit (r1604179) + * fsfs: optimize log commands for repos on Windows by not + using a locale specific function to parse ids (r1605123) + * fsfs: reduce memory usage of reading/writing changed paths caches + (r1605188 et al) + * mod_dav_svn: log post-commit errors to httpd error log as well + as returning them to client (r1606004) + * make server config groups work with svn:// URLs (issue #4512) + * svnadmin hotcopy: report progress when copying revisions and packed + shards for FSFS repositories (r1613339) + * info: show revisions for missing tree conflicts (r1617932) + * fsfs: avoid shared data clashes due to multiple distinct repositories + having identical UUIDs (r1618138 et al) + * status: ignore thumbs.db files by default (r1620955) + * fsfs: harden parsers against data corruption (r1622931, r1622937, + r1622942) + * diff: respect svn:keywords and svn:eol-style when doing arbitrary + diffs (r1623820) + * ra_serf: reduce size of XML generated for reports (r1627333) + * replace generic --trust-server-cert with more specific options to + override specific certificate failures (r1630117 et al) + * commit: improve speed of commits with many files (r1630312 et al) + * svnadmin setrevprop: add '--transaction' option (r1631435) + * svnadmin delrevprop: new subcommand (1592723) + * svnadmin verify: validate the index data against checksums (r1631598) + * cp: improve performance of local copies (r1632284, et al) + * fsfs: speed up operations that use revision properties (r1634875, + r1634879) + * checkout/update: use fewer RA sessions (r1635753 et al) + * log: do less work when '--with-no-revprops' is used (r1642231) + * patch: improve command to be more capable as compared to GNU patch + (issue #4533) + * limit server caches to avoid running out of memory if server admin + configured caches largely then they can possibly be on the platform + (r1645572) + * mod_authz_svn: log implicit read access failures with INFO log level; + Explicit read access failures are still logged with ERROR log level + (r1653032) + * ra_serf: reduce memory usage by removing some extra intermediary state + (r1654681, r1654690) + * revert: improve performance on large working copies without changes + (r1657083) + * ra_svn: improve efficiency of editor processing (r1658194 et al) + * merge: provide different conflict reasons for local additions and + unversioned obstructions (r1659381) + * windows: improve checkout performance on windows by using sqlite truncate + journal mode rather than delete (r1659426) + * status: now accept '-r' argument (r1671164, 1672578, 1673228) + * ls: improve performance of '-v' on tag directories (r1673153) + * resolve: improve conflict prompts for binary files (r1667228 et al) + * fsfs: improve error messages for parsing errors (r1678147, r1678149) + * warn when the '--config-option' FILE:SECTION:OPTION combination may + be invalid. (r1674301 et al) + * ensure full key matching in membuffer cache (r1678950 et al) - Client-side bugfixes: * export: fix problem exporting symlinks on windows (r1476093) - * fix no-ascii character handling of command line options (r1476461) - * convert log to UTF-8 before stripping data after EOF marker (r1476608) + * fix non-ascii character handling of command line options (r1476461) + * log: strip EOL marker only after converting to UTF-8 (r1476608) * ra_serf: avoid dropping errors when making a lock request (r1489526) * ra_serf: fix an error leak in update logic (r1499686) * windows: fix issues with wcs in symlinked folders (r1501251) * fix regression that broke parallel nested checkouts (issue #4390) - * svnmucc: ignore leading r in -r arguments (r1502636) + * svnmucc: ignore leading r in revision number arguments to -r (r1502636) * mkdir: use absolute paths to avoid Windows path length limits (r1516816) * avoid encoding support code when C runtime doesn't support it (r1530582) * ra_svn: add check against dirents with path separators (r1533812) * properly delete temporary files when atomic write fails (r1537466) - * fix corner cases in move-update tree conflicts (r1538639 et al) - * fix crash report indentation for x64 reports (r1543589) + * wc: fix corner cases in move-update tree conflicts (r1538639 et al) + * windows: fix crash report indentation for x64 reports (r1543589) * mergeinfo: allow to work on a moved target (issue #4301) * windows: avoid delay when no homedir is available (r1546814) * status: report externals in a deterministic way (r1550200) - * verify requested cached credentials match realm requested (r1550691 et al) - * copy: avoid an unneeded extra ra session for wc to repo case (r1551564) + * copy: avoid an unneeded extra RA session for wc to repo case (r1551564) * ra_serf: show pre-revprop-change failure on revprop delete (issue #3086) * svnsync: avoid extra request at end of every revision sync (r1553370) * ra_serf: fix replace + propset of locked file failures (issue #3674) * ra_serf: prevent overwriting directory during copy (issue #3314) * commit: limit number of temporary files open at same time (issue #4172) * ra_serf: verify incoming integers are really integers (r1557709 et al) - * wc: reorder two queries to avoid a statement re-prepare (r1558758) * log: -g --xml doesn't differentiate between forward and reverse merges (issue #4463) * windows: improve update and checkout speed (issue #4450) * log: reduce performance penalties of using -g (r1559912) * blame: reduce performance penalties of using -g (r1560112) * ra_local: set svn:txn-user-agent for consistency (r1498608) - * ra_svn: use the stream api properly for communications (r1562072) + * ra_svn: use the stream API properly for communications (r1562072) * update: provide error when none of targets are wcs (r1565388) - * ra_serf: follow RFC 2818, ignore common name when subjectAltNames are - present (r1565531) * wc: reduce dependence on unspecified SQLite behavior (r1567080 et al) - * diff: fix diff of directory failing without permissions to read ancester - directory on server (r1569265, 1569290) + * diff: fix diffing directory without permissions to read parent (r1569265, + r1569290) * diff: improve resolving peg revisions (r1570205 et al) * diff: fix bug in calculating header paths (r1570584) * ra_serf: add SSL certificate issuers common name to output (r1573728) * updates keywords in files not modified during 'svn switch' (issue #1975) + * svnmucc: Normalize line endings with '-F' and '-m' options + (r1592148, r1592150) + * fix problems with read-only authentication caches (issue #4504) + * commit: don't bump just locked files (r1603617) + * log: reduce memory with '-v' (r1604569 et al) + * diff: fix diffing locally deleted nodes under copied directories + (r1605832) + * diff: fix missing node error when diffing a replaced node (r1605866) + * propget: forbid using 'show-inherited-properties' with 'strict' (r1611698) + * windows: avoid delay when user profile isn't writable (r1617926) + * merge: display the correct node kinds for tree conflicts (r1618024, + r1619418, r1619717) + * diff: show the correct revisions in the header (r1619452) + * diff: fix missing header for files with only property changes (r1619476) + * update: raise a tree conflict rather than an obstruction when an + incoming server-excluded node conflicts with a locally added node + (r1619495) + * update: improve tree conflict reason and action descriptions (r1619777) + * ra_serf: fix stalls during checkout/update over http/https (r1621596) + * svnmucc: don't crash when '--version' is used with other arguments + (r1625496) + * checkout: report svn:externals failures via the exit code as other + commands already do (r1628398) + * svn & svnlook: use the right error code when fputs() fails (r1630369) + * export: reject peg specifiers on local destination path (r1635085) + * don't reject command-line arguments in the form of ".@abc", where + "abc" is a peg specifier that may be empty (r1635118) + * fix directory externals not following history (issue #4529) + * remove 'df' and 'm' options from the interactive conflict resolver for + binary files (r1645578) + * mergeinfo parsing: allow source path to be empty (issue #4537) + * mkdir: when using '--parents' don't add entire contents recursively if + target already exists (r1649951) + * resolve errors with move of a nested delete (r1651980, r1651997) + * update: prevent breaking a working copy when a directory is replaced + with an external to a foreign repository (issue #4550) + * update: prevent an invalid wc state when applying a move (r1652184 et al) + * resolve: fix a segfault when breaking a move inside a delete (issue #4491) + * ra_serf: don't handle a commit that didn't produce a new revision as + a successful commit (r1653532) + * export: fix the lack of notifications when starting to handle externals + (issue #4527) + * update: fix a case where we reported an error rather than a tree conflict + (r1655017) + * info: Use local platform style paths in all cases (r1659283) + * handle lack of a configuration file properly (r1660369) + * update: resolve issues with tree conflicts caused by an incoming + delete removing a mixed revision tree (r1660742) + * don't hold onto locks of deleted paths in the client on commit (r1661363) + * info: fix url calculation for a few statuses (r1661476) + * update: when using '--set-depth' avoid removing local changes (r1661585) + * update: fix tree conflict detection on unversioned nodes that exist where + there used to be a deleted node (r1661664) + * status: display tree conflicts even if the node with the tree conflict is + shadowed by a file (r1662331) + * pre-1.6 wc compatibility: fix with obstructed working copies (r1662412) + * resolve: allow directly resolving tree conflicts (r1658435) + * copy: when copying from a wc to a url show all the changes (r1655729) + * info: provide results in a stable order (r1662030) + * revert: allow depth limited reverts of nodes that only have not-present + and/or excluded child nodes (r1662091) + * wc: fix calculating repo path after commits of nodes that shadow a + switched (not-present) node (r1663991, r1666258, r1674032) + * update: resolve assertion on bad update report involving incomplete + status (r1663671, r1666832) + * update: allow a real file to replace a file external (r1664035) + * merge: raise a tree conflict on root of obstructing dir (r1666690) + * cp: fix 'svn cp ^/A/D/H@1 ^/A' to properly create A (r1674455, r1674456) + * status: fix incorrect output with file externals (issue #4580) - Server-side bugfixes: * svnserve: don't ignore socket initialization errors (r1544253) @@ -203,22 +326,80 @@ http://svn.apache.org/repos/asf/subversi merging (r1548124) * mod_dav_svn: always produce an error text even when text specifies the default message to make diagnosing issues easier (r1553441) - * mod_dav_svn: fix some pool lifetime issues with err messages (r1553868) + * mod_dav_svn: fix some pool lifetime issues with error messages (r1553868) * mod_dav_svn: avoid setting option headers multiple times (r1557103) * fsfs: prevent some commits that could cause future corruption (r1560673) - * fsfs: fix a problem verifying pre-1.4 repos used with 1.8 (r1561419) - * fsfs: don't write uniquifiers for old repo formats (r1561426) - * fsfs: fix hotcopy for pre-1.4 repositories (r1561427) - * fix 64-bit underflows in update hit counters (r1567996 et al) + * cache: fix premature eviction due to 64-bit underflows (r1567996 et al) * svnserve: fix potential integer overflow in Cyrus SASL support (r1570434) * bdb: fix potential integer overflow and underflow (r1570701) * bdb: prevent silent propogation of some corruption (r1570778) + * svnadmin verify: new option '--metadata-only' (r1593753) + * svnadmin hotcopy: do not corrupt db/current contents when copying old + FSFS repos (r1603485) + * svnadmin hotcopy: don't produce broken copies when a concurrent pack + happens (r1605633) + * log: reduce memory consumption of '-v' (r1605195) + * mod_dav_svn: fix performance issue on Windows with named atomics + (r1611379) + * log: fix a segfault in handling changed paths (r1615364) + * mod_dav_svn: properly forward post-lock/post-unlock failures (r1622235) + * diff: fix handling of depth empty in added directories (r1622024) + * fix a segfault with corrupted changed path lists that try to add root + nodes (r1622944) + * svnadmin verify: report errors nicely rather than possibly aborting + (r1622955) + * svnlook propget: report transaction name rather than revision number in + errors if run with '-t' option (r1623317) + * svnadmin verify: prevent stack overflow conditions in corrupted + repositories (r1623398) + * fsfs upgrade: fix an issue that could block an upgraded format 1 or 2 + repository from being committed to (r1624011) + * fs backends: fix memory lifetime issue (r1632646) + * bdb: output correct checksum in error message about corruption (r1640707) + * fsfs: fix a pool lifetime error related to transaction local caches + (r1643139, 1643233) + * fsfs: avoid "random DAG walks" during checkout over ra_serf (r1645567) + * fsfs/bdb: reduce memory use during tree deletions (r1647820, r1655022) + * mod_authz_svn: fix unbounded memory use when SVNPathAuthz short_circuit + is used (r1647887) + * fsfs: reduce memory use when walking back in history (r1648230) + * dump: remove incorrect kind header on replaced nodes (issue #4553) + * dump: remove duplicate headers for replace-with-copy (issue #4552) + * mod_dav_svn: don't send XML-unsafe characters in svn:author + (issue #4415) + * dump: don't write broken dump files in some ambiguously encoded fsfs + repositories (issue #4554) + * mod_dav_svn: provide a more intuitive error message to the client when + trying to create a directory that already exists (issue #2295) + * fsfs: fix uninitialized memory use in lock/unlock code (r1657525) + * fix a segfault executing a pre-commit hook with legacy locks (r1657893) + * mod_dav_svn: do not ignore skel parsing errors (r1658168) + * fsfs: fix multiple reporting of the same lock (r1658482) + * fsfs: fix pool lifetime issue in lock handling (r1659314) + * mod_dav_svn: properly log assertions and malfuctions (r1660480) + * svnadmin load/dump: preserve deletion of svn:date from r0 (issue #4563) + * svnrdump: don't provide HEAD+1 as base revision when loading deletes + (r1664684) + * mod_dav_svn: improve error message sent with a 405 status code + (r1665195, r1666096, r1666379) + * make detection of invalid base revision on commit behave the same on + all RA layers (r1664664, r1664672, r1664674) + * mod_dav_svn: emit the first few log items as soon as they are available + (r1666965, r1667120) + * mod_dav_svn: prevent a tree walk on copy sources (issue #4351) + * fsfs: fix 'EOF found' error when reading repo (issue #4577) + * svnadmin freeze: unlock rep-cache.db as part of unfreezing + (r1679169, r1679287) - Client-side and server-side bugfixes: * use less memory when retrieving extension from filename (r1548480) * use more optimal code path with old txdelta v1 data (r1485480) * windows: allow opening SQLite databases on long paths (r1564338) * fix an out-of-bounds read in the delta combiner (r1569415) + * fix a number of cases of undefined behavior when passing invalid + arguments to memcpy() (r1632530, et al) + * windows: avoid a 12 second delay due to a retry loop in some error + conditions when opening a file (r1657583) - Other tool improvements and bugfixes: * windows: add build-svn-deps-win.pl tool to build dependencies (r1467715) @@ -226,44 +407,63 @@ http://svn.apache.org/repos/asf/subversi * svnpubsub: do not pass svn commands through shell (r148466, r1486467) * svnpubsub: hooks exit with an error if they fail (r1486500, r1486597) * svnpubsub: hooks use "--" to signal end of arguments (r1486513) - * mailer: Properly encode mail headers per RFC2047 (r1487532) + * mailer: properly encode mail headers per RFC2047 (r1487532) * svnwcsub: add a pre-update hook, which can deny update (r1494542 et al) * fsfs-stats: count file nodes that are added without history (r1519283) + * fsfs-stats: replaced by 'svnfsfs stats' (r1594860) * fsfs-access-map: count empty reads and unnecessary seeks (r1523441) * fsfs-access-map: generate scaled/rectangular heatmaps (r1505065) * fsfs-access-map: deal with strace format issues (r1505065) * fsfs-access-map: update to know about index files (r1505065) - * svn-bench: add null-info command (r1532196) + * svnbench: renamed from svn-bench (r1659226) + * svnbench: add null-info command (r1532196) * svnlook.py: made usable as a library by adding getter methods (r1541558) - * svn-bench, svnraisetreeconflict, svnauthz, svn-rep-sharing-stats: More + * svnbench, svnraisetreeconflict, svnauthz, svn-rep-sharing-stats: More consistent error reporting, following pattern of core command-line programs (r1544194) - * bash_completion: support for youngest command (r1546975) * which-error.py: allow which-error.py to be run from symlink (r1547977) - * bash-completion: add svnlook filesize command and options to svn cat, + * bash_completion: add svnlook filesize command and options to svn cat, info, and mergeinfo commands (r1569021) + * new '--conflict-style' option to standalone diff3 tool (r1591750) + * update standalone diff3 tool so it can be used with --diff-cmd + directly (r1591871, r1591876) + * bash_completion: support for auth command (r1596841) + * diff: support '-U' option (r1618618) + * svn-rep-sharing-stats: replaced by 'svnfsfs stats' (r1618861) + * add svn-vendor.py as an alternative to svn_load_dirs.pl that can + auto-detect renames and copies (r1623660) + * svnpredumpfilter.py: fix a scalability problem that made run time + increase greatly on large repositories (r1625674 et al) + * svnpredumpfilter.py: detect copies of copies and handle properly + (r1626182) + * bash_completion: add svnadmin delrevprop (r1631473) + * showchange.pl: removed, obsoleted by 'svn log --diff' (r1631686) + * bash_completion: add new trust options (r1660373) + * bash_completion: add '--pin-externals' (r1662250) + * bash_completion: stop offering deprecated options (r1662291) + * bash_completion: add '--show-item' and '--no-newline' (r1662622) + * svnbench: add null-blame command (r1673785, r1673803, r1674015) Developer-visible changes: - General: * include symbolic names for error codes in maintainer mode (r1467643) * include symbolic names for warning codes in maintainer mode (r1469855) * support YouCompleteMe vim plugin (r1476374 et al) - * reduce getenv() call overhead in maintainer mode (r1476554) + * cache: add pretend_empty mode for maintainers (r1461689, et al) * allow tests to be run with exclusive wc locks (r1496475) * fix check for Microsoft C/C++ compiler (r1503148) * improve windows build to use pre-built dependencies * optimize ramdrive usage in the windows test runner (r1504511) * SVN_CMDLINE_DISABLE_CRASH_HANDLER env var added for Windows (r1506507) - * stop including some headers in win32 resource compile (r1532287) - * support Visual Studio 2013 with --vsnet-version=2013 (r1533907) - * avoid needing APR source when building on Windows (r1534037, et al) + * gen-make.py: support Visual Studio 2013 by --vsnet-version=2013 (r1533907) + * windows: don't require APR source when building (r1534037, et al) * don't compile SQLite amalgamation twice (r1536364) * make C tests use same temp path as Python tests (r1536700) * davautocheck: access log logs the r->filename now (r1538048) * added test to detect duplicate SQL queries (r1538962) - * in the windows test runner copy additional apr dlls (r1539300) + * windows test runner: copy additional apr dlls (r1539300) * support for debug logging that should be available in serf 1.4.0 (r1541561) - * fix build on OS X when Gnome is installed (r1541698) + * OS X: fix build when Gnome is installed (r1541698) * properly detect if expat is libexpat.lib or xml.lib on windows (r1541981) * doc-clean target works properly with separate build dir (r1542303) * don't break entire test run if cleaning temp directory failed but return @@ -274,14 +474,11 @@ http://svn.apache.org/repos/asf/subversi * use --bin path for svnrdump when running Python tests (r1548706) * remove unused --with-openssl option from configure (r1548714) * tests: stop rewriting shared authz file for every sandbox (r1552064 et al) - * get-deps.sh: Use a stable URL for zlib download (r1552957 et al) * fix unnecessary aborts in maintainer mode on sqlite errors (r1536325) * new --sqlite-logging option for C tests (r1560409) * allow building with APR-2 (r1560586) * remove support for ASM Zlib from Windows build system (r1560864) * gen-make.py: new -D option (r1567046) - * svn-populate-node-origins-index: fix build with Visual Studio - (r1568180 et al) * improve how we fetch the version of Windows (r1568798, 1568806) * move common code in python tests to library files to avoid side effects of having tests depending on each other (r1570654) @@ -301,83 +498,152 @@ http://svn.apache.org/repos/asf/subversi * binaries built on Mac OS X 10.6+ will not run on older versions (r1651549) * fix random failure of Makefile-based parallel builds on Unix when the amalgamated SQLite is being used (r1658357) + * C tests only run with ra_local to avoid duplicate testing (r1609477) + * allow skipping the C tests for any RA method (r1609489) + * new tools for benchmarking on Windows (r1610264) + * svnbench: no longer part of tools but main subversion (r1618860) + * improve detection for libtool (r1627276) + * check the runtime version of the fs_util library in the fs backends + (r1651567) + * properly initialize the src_kind value to avoid problems for other API + users during a copy (r1655723) + * try to improve reliability of applications that do not call + svn_dso_initialize2() right after apr_initialize() (r1659604) + * add svn-wc-db-tester tool for testing working copies (r1660874) + * fix bugs and performance issues using svn_wc_walk_entries3() (r1661110) + * support using Python 3 for building (r1661247) + * don't add -lstdc++ on FreeBSD 10 (r1662329) + * add build support for Visual Studio 2015 (r1663183, r1663184) + * fix test failures when running from a directory whose name contains + characters that must be escaped when used in a URL. (r1664997) + * fix breakage of the serf ra session with svn_ra_get_dir2() and + svn_ra_get_log2(). (r1665213, r1665259, r1665609) - API changes: - * New RA callbacks for managing ra_svn tunnels: + * new RA callbacks for managing ra_svn tunnels: svn_ra_callbacks2_t::check_tunnel_func, svn_ra_callbacks2_t::open_tunnel_func and - svn_ra_callbacks2_t::close_tunnel_func. - * New api for retrieving info about a file system: svn_fs_info() - * New api svn_io_file_flush() that wraps apr_file_flush(). - * New api svn_io_write_atomic(), that writes, sync and renames a file. - * New api svn_compat_log_revprops_out_string(). - * Deprecate unused datatype svn_ra_get_latest_revnum_func_t. - * New struct svn_wc_conflict_description3_t (r1494990) - * New api svn_client_cleanup2() (r1496954 et al) - * New api svn_stringbuf_create_wrap() (r1502248) - * New api svn_io_file_aligned_seek() (r1502539) + svn_ra_callbacks2_t::close_tunnel_func + * new API for retrieving info about a file system: svn_fs_info() + * new API svn_io_file_flush() that wraps apr_file_flush() + * new API svn_io_write_atomic(), that writes, sync and renames a file + * new API svn_compat_log_revprops_out_string() + * deprecate unused datatype svn_ra_get_latest_revnum_func_t + * new API svn_client_cleanup2() (r1496954 et al) + * new API svn_stringbuf_create_wrap() (r1502248) + * new API svn_io_file_aligned_seek() (r1502539) * ra_svn: fix svn_ra_get_log*() to apply limit when server can't (r1503043) * svn_client_commit6: notify which path prevents a mv commit (r1503662) - * New apis svn_io_file_create_empty() and svn_io_file_create_bytes() + * new APIs svn_io_file_create_empty() and svn_io_file_create_bytes() (r1505006) - * New api svn_ver_check_list2() (r1502267) - * svn_fs_paths_changed() gains support for moves (r1525448) - * New api svn_repos_get_logs5() adds support for moves (r1525453) - * New api svn_ra_get_log3() adds support for moves (r1525460) - * New api svn_client_log6() adds support for moves (r1525463) - * New api svn_stringbuf_from_stream() (r1532193) + * new API svn_ver_check_list2() (r1502267) + * new API svn_stringbuf_from_stream() (r1532193) * svn_auth_get_platform_specific_client_providers() now includes ssl providers (r1534153) - * dav_svn_split_uri() repos_path is a fspath with a leading slash (r1537812) - * New api svn_repos_fs_type() returns filesystem type (r1538585) + * change dav_svn_split_uri() repos_path argument (r1537812) + * new API svn_repos_fs_type() returns filesystem type (r1538585) * svn_client__get_inheritable_props() clears wcroot_iprops when revision is not valid (r1538602) * SVN_VA_NULL: New macro which is null-pointer constant (r1536307) * SVN_NEEDS_SENTINEL_NULL: New macro to mark functions that require final - NULL sentinel value, so compilers can warn when missing. (r1543394) + NULL sentinel value, so compilers can warn when missing (r1543394) * platform specific svn_auth_get_* functions are deprecated, use the svn_auth_get_platform_specific_provider() function instead (r1543992) - * SVN_INT_ERR macro is deprecated use svn_handle_error2() or + * SVN_INT_ERR macro is deprecated; use svn_handle_error2() or svn_cmdline_handle_exit_error() instead (r1544142) - * New api svn_client_cat3() allow disabling keyword expansion and retrieving - props. (r1544182) + * new API svn_client_cat3() allow disabling keyword expansion and retrieving + props (r1544182) * svn_auth_first_credentials(): provides an error rather than crashing if auth_baton is NULL (r1544320) * svn_auth_set_parameter(): Do nothing if auth_baton is NULL (r1544320) - * New api svn_relpath_limit which returns a relpath with a maximum number - of path components (r1545123) + * new API svn_relpath_prefix which returns a relpath with a maximum number + of path components (r1545123, r1673282) * svn_fs_initialize() is now threadsafe (r1546409) * svn_checksum_kind_t has two new FNV-1a checksums (r1546699) * svn_fs_lock: control characters are not allowed in lock tokens (r1547445) - * New api svn_wc_cleanup4() makes some functionality optional and adds + * new API svn_wc_cleanup4() makes some functionality optional and adds notifications (r1548075 et al) - * New api svn_client_info4() supports walking externals (r1550206 et al) - * New flag for svn_fs_begin_txn2() SVN_FS_TXN_CLIENT_DATE to allow client + * new API svn_client_info4() supports walking externals (r1550206 et al) + * new flag for svn_fs_begin_txn2() SVN_FS_TXN_CLIENT_DATE to allow client to set the final svn:date (r1550228) - * New apis for easier RA commits svn_client_mtcc_* (r1550758 et al) - * New api svn_ra_session_dup() (r1552324 et al) + * new APIs for easier RA commits svn_client_mtcc_* (r1550758 et al) + * new API svn_ra_session_dup() (r1552324 et al) * svn_ra_stat() now handles compatibility with 1.0-1.1 svnserve (r1552441) - * New error code SVN_ERR_COMPOSED_ERROR added to allow detection of + * new error code SVN_ERR_COMPOSED_ERROR added to allow detection of composed errors by API consumers (r1553266) - * New error code SVN_ERR_RA_DAV_PRECONDITION_FAILED (r1553668) - * New error code SVN_ERR_RA_CANNOT_CREATE_SESSION (r1554027) - * New api svn_fs_node_relation() (r1554800) + * new error code SVN_ERR_RA_DAV_PRECONDITION_FAILED (r1553668) + * new error code SVN_ERR_RA_CANNOT_CREATE_SESSION (r1554027) + * new API svn_fs_node_relation() (r1554800) * SVN_EXPERIMENTAL to mark functions that might change in future (r1526012) * fix bug in svn_client_get_merging_summary() with some params (r1532396) - * New error code SVN_ERR_XML_UNEXPECTED_ELEMENT (r1498938) - * Extend stream API to also support incomplete reads (r1561688 et al) - * New api svn_wc_add_from_disk3() (r1563361) - * New api svn_client_revert3() to allow clearing changelists (r1568635) + * new error code SVN_ERR_XML_UNEXPECTED_ELEMENT (r1498938) + * extend stream API to also support incomplete reads (r1561688 et al) + * new API svn_wc_add_from_disk3() (r1563361) + * new API svn_client_revert3() to allow clearing changelists and to have + a metadata_only flag (r1568635, r1657026) * svn_rangelist_inheritable2(): don't change inheritabilty of remaining ranges (r1569731) * svn_rangelist_inheritable2() and svn_mergeinfo_inheritable2(): fix a pool lifetime issue (r1569764) - * New apis to support cancelation during unified diff output (r1570149) + * new APIs to support cancelation during unified diff output and + allow the context size to be specified (r1570149 et al) * APIs related to retrieving logs are now documented to be unlimited when a negative value is passed for the limit (r1570330, 1570335) - * New apis: svn_fs_props_different() and svn_fs_contents_different() + * new APIs: svn_fs_props_different() and svn_fs_contents_different() (r1572363, r1573111) - * Expose SVN_CONFIG_AUTHN_* macros in public API (r1572640) + * expose SVN_CONFIG_AUTHN_* macros in public API (r1572640) + * add SVN_CONFIG_OPTION_SQLITE_TIMEOUT to allow SQLite busy timeout + to be configured by clients (r1592093) + * add new notification between transmitting deltas and finalizing + commit as svn_wc_notify_commit_finalizing (r1603388) + * svn_client_cat3() API no longer returns entry or WC props (r1603501) + * properly handle canonical paths in svn_io_start_cmd3() (r1604761) + * add SVN_FS_CONFIG_FSFS_BLOCK_READ to control FSFS format 7 block + read feature (r1604933) + * new API svn_cstring_skip_prefix() (r1612823) + * new API svn_diff_mem_string_output_merge3() (r1618599) + * extend svn_wc_info_t with conflicts2 (r1618643) + * new API svn_diff_mem_string_output_unified3() (r1618839) + * new API svn_diff_file_output_merge3() (r1618857) + * svn_fs_props_changed() and svn_fs_contents_changed() no longer return + false positives (r1618880) + * new API svn_wc_conflict_description2_dup() (r1618883) + * extend svn_wc_conflict_description2_t with prop_reject_abspath field + (r1619096) + * extend svn_wc_conflict_description2_t with property values as + svn_string_t's (r1619122) + * fix svn_client_import5() to use absolute paths (r1623974) + * fix a few cases of invalid filling of svn_client_commit_item3_t (r1623981) + * add SVN_FS_CONFIG_FSFS_SHARD_SIZE to allow creation of repositories with + a custom shard size (r1624512) + * new API svn_cmdline_create_auth_baton2 (r1630117) + * make svn_string_*() and svn_stringbuf_*() functions handle C strings + of NULL with 0 length (r1632530, et al) + * fix svn_stream_compressed() for streams without partial read support + (r1639626) + * do not segfault on svn_stream_read_full() or svn_stream_skip() are called + for a no-op stream created via svn_stream_create() (r1639637) + * add SVN_FS_CONFIG_FSFS_LOG_ADDRESSING to control logical addressing + feature of fsfs format 7 (r1640915) + * rename the 'parent_directory' parameter of + svn_wc_parse_externals_description3() to 'defining_directory' and improve + the documentation (r1642690) + * new API svn_repos_get_fs_build_parser5() (r1647563) + * SVN_VERSION_BODY changed so that it is embedded into libraries, ultimately + allowing SVN_VER_TAG constant to be modified by patches (r1651565) + * rename repos_url to repos_url_deocded argument to + svn_repos_get_commit_editor5() to clairfy usage (r1653609) + * make svn_io_set_file_read_only() and svn_io_remove_dir2() ignore + ENOTDIR when ignore_enoent argument is set so the behavior is consistent + across platforms (r1653680) + * make svn_ra_open4() return the documented error when a repository + should be opened in a different location (r1655648) + * no longer return an error when using svn_ra_get_lock() and the path does + not exist (r1656875) + * svn_string_dup() will accept a NULL pointer and return a NULL (r1657254) + * svn_ra_get_file_revs2() now handles SVN_INVALID_REVNUM as HEAD (r1660463) + * new API svn_error_quick_wrapf() (r1662668) + * new API svn_fs_node_has_props() (r1673170, r1673172, r1673692, r1673746) - Bindings: * javahl: add support for the RA layer (r1494650 et al) @@ -389,12 +655,12 @@ http://svn.apache.org/repos/asf/subversi * javahl: add inheritance info to JavaHL's RevisionRange type (r1499308) * swig-rb: fixes to building on Windows (1505406 et al) * libsvn_swig_*libraries now work as proper shared librares (r1506520 et al) - * swig-py: import libsvn_subr pub symbols from svn.core * (r1507860) + * swig-py: 'import svn.core.*' imports libsvn_subr public symbols (r1507860) * javahl: expose the svn_rangelist operations (r1509025) * javahl: new utility class SVNUtil (r1512354) * javahl: serialize init of native library (r1519803) * javahl: fix value truncation checks (r1519913) - * javahl: Add ISVNClient.info which exposes svn_client_info4 (r1603481) + * javahl: add ISVNClient.info which exposes svn_client_info4 (r1603481) * javahl: include name of exception class in error messages (r1532117) * javahl: simplify JNI environment handling (r1533804) * javahl: Revsion.UNSPECIFIED added as alias to Revision.START (r1533928) @@ -405,7 +671,7 @@ http://svn.apache.org/repos/asf/subversi * javahl: new utility API to parse/unparse svn:externals (r1539130 et al) * javahl: allow tests to be run from a RAM disk (r1539215 et al) * javahl: expose and use the url member of svn_wc_notify_t (r1539601) - * javahl: expose a utility api to resolve relative externals (r1540921) + * javahl: expose a utility API to resolve relative externals (r1540921) * javahl: new utility API for file content translation (r1542401) * javahl: throw NullPointerException when sources is empty (r1543328) * swig-pl: fix compilation against perl 5.18 on Windows (r1543980) @@ -413,7 +679,7 @@ http://svn.apache.org/repos/asf/subversi * javahl: enable warnings with javac (r1544163, r1544169) * javahl: cleanup warnings (r1544578 et al) * javahl: add common utilities for new-style map iterations (r1545925) - * javahl: add an api to get runtime version of native libs (r1545945) + * javahl: add an API to get runtime version of native libs (r1545945) * javahl: use default cache size instead of no cache (r1547248) * swig-py: add typemap for hunks field of svn_patch_t (r1548379) * javahl: don't ignore difference between NULL and empty changelist in @@ -427,11 +693,96 @@ http://svn.apache.org/repos/asf/subversi * javahl: expose --alow-mixed-revisions merge option (r1567602) * javahl: support incomplete reads from streams (r1569631) * javahl: allow revert API to take a set of paths (r1571461) + * javahl: improve authentication callback (r1597758 et al) + * javahl: load (most) classes on demand (r1602822) + * javahl: expose confg file keys in JavaHL (r1604448) + * javahl: update ISVNClient.info, ISVnClient.cleanup and add + ISvnClient.vacuum (r1604449) + * javahl: update ISVNRepos.hotcopy (r1618894) + * swig-py: Add close to the core.Stream class (r1619077) + * javahl: add example clients that use the authn API (r1640533) + * swig-py: implement dump stream parser (r1642813) + * swig-pl: remove some unneded cleanup code that triggered a cleanup + failure on windows (r1643072) + * swig-pl: make cancel_func, cancel_baton parameter pairs work (r1648852) + * javahl: expose whitespace diff parameters to blame method (issue #4475) + * javahl: update ConflictDescriptor (r1655842) + * javahl: update FileRevision to provide textDelta (r1656911) + * swig-pl: install into prefix (r1658459) + * javahl: expose the metadataOnly option to copy support (r1661451) + * swig-py: add support for svn_fs_lock_many(), svn_fs_unlock_many(), + svn_repos_fs_lock_many() and svn_repos_fs_unlock_many() (r1662867) + * swig-py: fix support for svn_ra_lock() and svn_ra_unlock() (r1662891) + * javahl: allow java callbacks to throw errors back to the svn code + (r1664938, r1664939, r1664940, r1664978, r1664984) + * swig-pl: fix some stack memory problems (r1668618, 1671388) + * swig: warn on using SWIG 3.x as we have compatibility problems + with newer versions of SWIG (1675149) + * javahl: requires Java 1.6 (r1677003) + * javahl: on OS X use /usr/libexec/java_home to find the JDK (r1675774) + + +Version 1.8.13 +(31 Mar 2015, from /branches/1.8.x) +http://svn.apache.org/repos/asf/subversion/tags/1.8.13 + + User-visible changes: + - Client-side bugfixes: + * ra_serf: prevent abort of commits that have already succeeded (r1659867) + * ra_serf: support case-insensitivity in HTTP headers (r1650481, r1650489) + * better error message if an external is shadowed (r1655712, r1655738) + * ra_svn: fix reporting of directory read errors (r1656713) + * fix a redirect handling bug in 'svn log' over HTTP (r1650531) + * properly copy tree conflict information (r1658115, r1659553, r1659554) + * fix 'svn patch' output for reordered hunks (issue #4533) + * svnrdump load: don't load wrong props with no-deltas dump (issue #4551) + * fix working copy corruption with relative file external (issue #4411) + * don't crash if config file is unreadable (r1590751, r1660350) + * svn resolve: don't ask a question with only one answer (r1658417) + * fix assertion failure in svn move (r1651963 et al) + * working copy performance improvements (r1664531, r1664476, et al) + * handle existing working copies which become externals (r1660071) + * fix recording of WC meta-data for foreign repos copies (r1660593) + * fix calculating repository path of replaced directories (r1660646) + * fix calculating repository path after commit of switched nodes (r1663991) + * svnrdump: don't provide HEAD+1 as base revision for deletes (r1664684) + * don't leave conflict markers on files that are moved (r1660220, r1665874) + * avoid unnecessary subtree mergeinfo recording (r1666690) + * fix diff of a locally copied directory with props (r1619380 et al) + + - Server-side bugfixes: + * fsfs: fix a problem verifying pre-1.4 repos used with 1.8 (r1561419) + * svnadmin freeze: fix memory allocation error (r1653039) + * svnadmin load: tolerate invalid mergeinfo at r0 (r1643074, issue #4476) + * svnadmin load: strip references to r1 from mergeinfo (issue #4538) + * svnsync: strip any r0 references from mergeinfo (issue #4476) + * fsfs: reduce memory consumption when operating on dag nodes (r1655651) + * reject invalid get-location-segments requests in mod_dav_svn and + svnserve (r1667233) + * mod_dav_svn: reject invalid txnprop change requests (r1667235) + + - Client-side and server-side bugfixes: + * fix undefined behaviour in string buffer routines (r1650834) + * fix consistency issues with APR r/w locks on Windows (r1611380 et al) + * fix occasional SEGV if threads load DSOs in parallel (r1659013, r1659315) + * properly duplicate svn error objects (r1651759) + * fix use-after-free in config parser (1646785, r1646786, r1646797) + + Developer-visible changes: + * add lock file config for testing against HTTPD 2.4+ (r1544302, r1544303) + * make sqlite amalgamated build work with sqlite 3.8.x+ (r1659399) + * fix build with Ruby 2 (r1596882) + * process 'svnadmin dump' output as binary in the test suite (r1592987) + * simplify Windows resource compilation to avoid warnings (r1532287) + + +Version 1.8.12 +(Not released, see changes for 1.8.13.) Version 1.8.11 (15 Dec 2014, from /branches/1.8.x) -http://svn.apache.org/repos/asf/subversion/tags/1.8.10 +http://svn.apache.org/repos/asf/subversion/tags/1.8.11 User-visible changes: - Client-side bugfixes: @@ -792,7 +1143,7 @@ http://svn.apache.org/repos/asf/subversi * merge: rename 'automatic merge' to 'complete merge' (r1491432) * mergeinfo: reduce network usage for '--show-revs' (r1492005) * ra_serf: improve http status handling (r1495104) - * merge: avoid unneeded ra session (r1493475) + * merge: avoid unneeded RA session (r1493475) * merge: reduce network usage (r1478987) * merge: remove duplicated ancestry check (r1493424, r1495597) * ra_serf: fix 'Accept-Encoding' header for IIS interoperability (r1497551) @@ -1205,6 +1556,28 @@ http://svn.apache.org/repos/asf/subversi * fix some reference counting bugs in swig-py bindings (r1464899, r1466524) +Version 1.7.20 +(31 Mar 2015, from /branches/1.7.x) +http://svn.apache.org/repos/asf/subversion/tags/1.7.20 + + User-visible changes: + - Client-side bugfixes: + * fix 'svn patch' output for reordered hunks (issue #4533) + + - Server-side bugfixes: + * reject invalid get-location-segments requests in mod_dav_svn and + svnserve (r1667233) + * mod_dav_svn: reject invalid txnprop change requests (r1667235) + + - Client-side and server-side bugfixes: + * properly duplicate svn error objects (r1651759) + * fix use-after-free in config parser (1646785, r1646786, r1646797) + + Developer-visible changes: + * add lock file config for testing against HTTPD 2.4+ (r1544302, r1544303) + * fix build with absolute path to neon install (r1664789) + + Version 1.7.19 (15 Dec 2014, from /branches/1.7.x) http://svn.apache.org/repos/asf/subversion/tags/1.7.19
Modified: subversion/branches/fsx-1.10/COMMITTERS URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/COMMITTERS?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/COMMITTERS [UTF-8] (original) +++ subversion/branches/fsx-1.10/COMMITTERS [UTF-8] Sun Jun 14 20:58:10 2015 @@ -51,7 +51,7 @@ Blanket commit access: rhuijben Bert Huijben <[email protected]> stylesen Senthil Kumaran S <[email protected]> steveking Stefan Küng <[email protected]> - neels Neels J. Hofmeyr <[email protected]> + neels Neels J. Hofmeyr <[email protected]> jwhitlock Jeremy Whitlock <[email protected]> sbutler Stephen Butler <[email protected]> dannas Daniel Näslund <[email protected]> Modified: subversion/branches/fsx-1.10/INSTALL URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/INSTALL?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/INSTALL (original) +++ subversion/branches/fsx-1.10/INSTALL Sun Jun 14 20:58:10 2015 @@ -15,7 +15,7 @@ Contents: D. Documentation II. INSTALLATION - A. Building from a Tarball or RPM + A. Building from a Tarball B. Building the Latest Source under Unix C. Building under Unix in Different Directories D. Installing from a Zip or Installer File under Windows @@ -123,7 +123,8 @@ I. INTRODUCTION create a repository, you have the option of specifying a storage back-end. The Berkeley DB back-end will only be available if the BDB libraries are discovered at compile - time. + time. The Berkeley DB back-end has been deprecated and + is not recommend. * libsasl (OPTIONAL for client and server) @@ -192,7 +193,7 @@ I. INTRODUCTION commands described in section II.B before installing the following. - 1. Apache Portable Runtime 0.9.7 or 1.X.X (REQUIRED) + 1. Apache Portable Runtime 1.3 or newer (REQUIRED) Whenever you want to build any part of Subversion, you need the Apache Portable Runtime (APR) and the APR Utility (APR-util) @@ -200,8 +201,8 @@ I. INTRODUCTION **************************************************************** - ** IMPORTANT ISSUE ABOUT APR VERSIONS: READ THIS. ** - ** ** + ** IMPORTANT ISSUE ABOUT APR VERSIONS: READ THIS ** + ** IF UPGRADING FROM MUCH OLDER SUBVERSION ** **************************************************************** | | | APR 0.9.X and 1.X are binary-incompatible. | @@ -355,10 +356,6 @@ I. INTRODUCTION Under Windows, you can specify the paths to these libraries by passing the options --with-zlib and --with-openssl to gen-make.py. - ### Is that right? In-tree build of Neon was disabled in r875974. - This may now apply to Serf, or else gen-make.py should be - updated to remove such options. - c. Using OpenSSL on the Apache server You can also add support for these features to an Apache httpd @@ -465,23 +462,7 @@ I. INTRODUCTION script. - 12. MASM 6 or newer (Windows only, OPTIONAL) - - The Windows build scripts for Subversion can use the Microsoft - Macro Assembler (MASM) to build an optimized version of the ZLib - library. Make sure that the version of MASM you use is compatible - with the C compiler. If you're using MSVC 6, and don't have MASM 6, - a free MASM-compatible assembler is available here: - - http://www.masm32.com/ - - You only need ML.EXE and ML.ERR from this distribution. - - The VS.NET installation already contains MASM (but note, that - version if MASM is not compatible with MSVC 6). - - - 13. SQLite (REQUIRED) + 12. SQLite (REQUIRED) Subversion 1.8 requires SQLite version 3.7.12 or above. You can meet this dependency several ways: @@ -497,26 +478,26 @@ I. INTRODUCTION http://www.sqlite.org/download.html - 14. pkg-config (Unix only, OPTIONAL) + 13. pkg-config (Unix only, OPTIONAL) Subversion uses pkg-config to find appropriate options used at build time. - 15. D-Bus (Unix only, OPTIONAL) + 14. D-Bus (Unix only, OPTIONAL) D-Bus is a message bus system. D-Bus is required for support for KWallet and GNOME Keyring. pkg-config is needed to find D-Bus headers and library. - 16. Qt 4 (Unix only, OPTIONAL) + 15. Qt 4 (Unix only, OPTIONAL) Qt is a cross-platform application framework. QtCore, QtDBus and QtGui modules are required for support for KWallet. pkg-config is needed to find Qt headers and libraries. - 17. KDELibs 4 (Unix only, OPTIONAL) + 16. KDELibs 4 (Unix only, OPTIONAL) Subversion contains optional support for storing passwords in KWallet. KDELibs contains core KDE libraries. Subversion uses libkdecore and libkdeui @@ -528,13 +509,13 @@ I. INTRODUCTION --with-kwallet=/path/to/KDE/prefix - 18. GLib 2 (Unix only, OPTIONAL) + 17. GLib 2 (Unix only, OPTIONAL) GLib is a general-purpose utility library. GLib is required for support for GNOME Keyring. pkg-config is needed to find GLib headers and library. - 19. GNOME Keyring (Unix only, OPTIONAL) + 18. GNOME Keyring (Unix only, OPTIONAL) Subversion contains optional support for storing passwords in GNOME Keyring. pkg-config is needed to find GNOME Keyring headers and library. D-Bus and @@ -542,7 +523,7 @@ I. INTRODUCTION then pass the '--with-gnome-keyring' option to `configure`. - 20. Ctypesgen (OPTIONAL) + 19. Ctypesgen (OPTIONAL) Ctypesgen is Python wrapper generator for ctypes. It is used to generate a part of Subversion Ctypes Python bindings (CSVN). If you want to build @@ -553,7 +534,7 @@ I. INTRODUCTION For more information on CSVN, see subversion/bindings/ctypes-python/README. - 21. libmagic (OPTIONAL) + 20. libmagic (OPTIONAL) Subversion's configure script attempts to find libmagic automatically. If it is installed in a non-standard location, then use: @@ -574,7 +555,7 @@ I. INTRODUCTION --with-libmagic - 22. Googlemock (OPTIONAL) + 21. Googlemock (OPTIONAL) Googlemock can be installed and built in-tree by invoking @@ -594,7 +575,7 @@ I. INTRODUCTION II. INSTALLATION ============ - A. Building from a Tarball or RPM + A. Building from a Tarball ------------------------------ 1. Building from a Tarball @@ -609,34 +590,10 @@ II. INSTALLATION $ make # make install - You can also run the full test suite by running 'make check'. - - - 2. Building from an RPM - - If you are using Linux (or any OS that can use RPM) then another - possibility is to download the binary RPM from the - http://summersoft.fay.ar.us/pub/subversion directory. - - Currently only Linux on the i386 platform is supported - using this method. You might also require additional RPMS - (which can be found in the above mentioned directory) to use the - subversion RPM depending on what packages you already have installed: - - subversion*.i386.rpm - apache*.i386.rpm (Version 2.0.49 or greater) - db*.i386.rpm (Version 4.0.14 or greater; version 4.3.27 or - 4.2.52 is preferred however) - expat (Comes with RedHat) - - After downloading, install it (as root user): - - # rpm -ivh subversion*.386.rpm (add other packages as necessary) - - Note: For an easy way to generate a new version of the RPM - source and binary package from the latest source code you - just checked out, see the packages/rpm/README file for a - one-line build procedure. + You can also run the full test suite by running 'make check'. Even + in successful runs, some tests will report XFAIL; that is normal. + Failed runs are indicated by FAIL or XPASS results, or a non-zero exit + code from "make check". B. Building the Latest Source under Unix @@ -658,7 +615,6 @@ II. INSTALLATION # rm -f /usr/local/lib/libsvn* # rm -f /usr/local/lib/libapr* - # rm -f /usr/local/lib/libexpat* # rm -f /usr/local/lib/libserf* Start the process by running "autogen.sh": @@ -813,7 +769,7 @@ II. INSTALLATION program, not an installer - just rename it to awk.exe and it is ready to use. * Apache apr, apr-util, and optionally apr-iconv libraries, version - 0.9.12 or later. Included in both the Subversion dependencies ZIP file + 1.3 or later. Included in both the Subversion dependencies ZIP file and the Apache 2 source zip. If you are building from a Subversion checkout and have not downloaded Apache 2, then get these 3 libraries from http://www.apache.org/dist/apr/. @@ -830,11 +786,7 @@ II. INSTALLATION * [Optional] Apache 2 source, downloaded from http://httpd.apache.org/download.cgi, these instructions assume version 2.0.58. This is only needed for building the Subversion - server Apache modules. Note that although Subversion will compile - against Apache 2.2.3 and APR 1.2.7, there is a bug that causes - runtime failures with Subversion on Windows. The fix is included in - APR 1.2.8 and will be bundled in the next HTTP Server release - (likely to be 2.2.4). + server Apache modules. ### FIXME Apache 2.2 or greater required. * [Optional] Apache 2 msi install file, also from http://httpd.apache.org/download.cgi (required for running the tests). Only needed for testing the server dso modules and if @@ -1164,12 +1116,6 @@ III. BUILDING A SUBVERSION SERVER A. Setting Up Apache ----------------- - (Following the BOOTSTRAPPING FROM RPM procedures above will install and - build the latest Subversion server for Linux RedHat 7.1, 7.2, and PPC - Linux systems *IF* the apache-devel-2.0.41 or greater package is already - installed when the SUBVERSION RPM is built.) - - 1. Obtaining and Installing Apache 2 Subversion tries to compile against the latest released version Modified: subversion/branches/fsx-1.10/Makefile.in URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/Makefile.in?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/Makefile.in (original) +++ subversion/branches/fsx-1.10/Makefile.in Sun Jun 14 20:58:10 2015 @@ -498,17 +498,17 @@ clean-javahl: check-tigris-javahl: javahl-compat @FIX_JAVAHL_LIB@ $(TEST_SHLIB_VAR_JAVAHL) \ - $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests + $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests check-apache-javahl: javahl @FIX_JAVAHL_LIB@ $(TEST_SHLIB_VAR_JAVAHL) \ - $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests + $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests check-deprecated-authn-javahl: javahl @FIX_JAVAHL_LIB@ $(TEST_SHLIB_VAR_JAVAHL) \ - $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests + $(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests check-javahl: check-apache-javahl @@ -849,7 +849,11 @@ swig-pl_DEPS = autogen-swig-pl libsvn_sw $(SWIG_PL_DIR)/native/Makefile swig-pl: $(swig-pl_DEPS) if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \ - ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \ + for f in $(SWIG_PL_SRC_DIR)/native/*.c ; do \ + if [ -e "$$f" ] ; then \ + ln -sf "$$f" $(SWIG_PL_DIR)/native; \ + fi; \ + done; \ fi cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)" Modified: subversion/branches/fsx-1.10/NOTICE URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/NOTICE?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/NOTICE (original) +++ subversion/branches/fsx-1.10/NOTICE Sun Jun 14 20:58:10 2015 @@ -1,5 +1,5 @@ Apache Subversion -Copyright 2014 The Apache Software Foundation +Copyright 2015 The Apache Software Foundation This product includes software developed by many people, and distributed under Contributor License Agreements to The Apache Software Foundation Modified: subversion/branches/fsx-1.10/autogen.sh URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/autogen.sh?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/autogen.sh (original) +++ subversion/branches/fsx-1.10/autogen.sh Sun Jun 14 20:58:10 2015 @@ -205,7 +205,7 @@ fi echo "Creating svn_private_config.h.in..." ${AUTOHEADER:-autoheader} -# If there's a config.cache file, we may need to delete it. +# If there's a config.cache file, we may need to delete it. # If we have an existing configure script, save a copy for comparison. if [ -f config.cache ] && [ -f configure ]; then cp configure configure.$$.tmp Modified: subversion/branches/fsx-1.10/build.conf URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build.conf?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build.conf (original) +++ subversion/branches/fsx-1.10/build.conf Sun Jun 14 20:58:10 2015 @@ -867,7 +867,7 @@ libs = libsvn_test libsvn_fs libsvn_delt msvc-force-static = yes [fs-test] -description = Test locks in libsvn_fs +description = Tests in libsvn_fs type = exe path = subversion/tests/libsvn_fs sources = fs-test.c @@ -875,6 +875,15 @@ install = test libs = libsvn_test libsvn_fs libsvn_delta libsvn_fs_util libsvn_subr aprutil apriconv apr +[fs-sequential-test] +description = Tests in libsvn_fs run sequentially +type = exe +path = subversion/tests/libsvn_fs +sources = fs-sequential-test.c +install = test +libs = libsvn_test libsvn_fs libsvn_delta + libsvn_fs_util libsvn_subr aprutil apriconv apr + # ---------------------------------------------------------------------------- # Tests for libsvn_repos @@ -1354,6 +1363,15 @@ libs = libsvn_wc libsvn_subr apriconv ap msvc-force-static = yes testing = skip +[svn-wc-db-tester] +type = exe +path = tools/dev/wc-ng +sources = svn-wc-db-tester.c +install = test +libs = libsvn_wc libsvn_subr apr +msvc-force-static = yes +testing = skip + # ---------------------------------------------------------------------------- # # EXTERNAL TARGETS (NO BUILD NEEDED) @@ -1483,7 +1501,7 @@ type = project path = build/win32 libs = __ALL__ fs-test fs-base-test fs-fsfs-test fs-fs-pack-test fs-fs-fuzzy-test - fs-fs-private-test fs-x-pack-test string-table-test + fs-fs-private-test fs-x-pack-test string-table-test fs-sequential-test skel-test strings-reps-test changes-test locks-test repos-test dump-load-test checksum-test compat-test config-test hashdump-test mergeinfo-test @@ -1513,7 +1531,7 @@ type = project path = build/win32 libs = __ALL_TESTS__ diff diff3 diff4 fsfs-access-map svnauth - svn-populate-node-origins-index + svn-populate-node-origins-index x509-parser svn-wc-db-tester [__LIBS__] type = project @@ -1585,9 +1603,10 @@ install = tools libs = libsvn_diff libsvn_subr apriconv apr [svnbench] +description = Benchmarking and diagnostics tool for the network layer type = exe path = subversion/svnbench -install = tools +install = bin libs = libsvn_client libsvn_wc libsvn_ra libsvn_subr libsvn_delta apriconv apr @@ -1628,6 +1647,7 @@ libs = libsvn_wc libsvn_subr apriconv ap install = tools [x509-parser] +description = Tool to verify x509 certificates type = exe path = tools/dev sources = x509-parser.c Modified: subversion/branches/fsx-1.10/build/ac-macros/java.m4 URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build/ac-macros/java.m4?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build/ac-macros/java.m4 (original) +++ subversion/branches/fsx-1.10/build/ac-macros/java.m4 Sun Jun 14 20:58:10 2015 @@ -62,10 +62,13 @@ AC_DEFUN(SVN_FIND_JDK, JDK_SUITABLE=no AC_MSG_CHECKING([for JDK]) if test $where = check; then - dnl Prefer /Library/Java/Home first to try to be nice on Darwin. - dnl We'll correct later if we get caught in the tangled web of JAVA_HOME. + dnl Prefer /usr/libexec/java_home, then /Library/Java/Home first + dnl to try to be nice on Darwin. We'll correct later if we get + dnl caught in the tangled web of JAVA_HOME. if test -x "$JAVA_HOME/bin/java"; then JDK="$JAVA_HOME" + elif test -x "/usr/libexec/java_home"; then + JDK=`/usr/libexec/java_home` elif test -x "/Library/Java/Home/bin/java"; then JDK="/Library/Java/Home" elif test -x "/usr/bin/java"; then @@ -148,49 +151,22 @@ AC_DEFUN(SVN_FIND_JDK, JAVADOC="$JAVA_BIN/javadoc" JAR="$JAVA_BIN/jar" - dnl Prefer Jikes (for speed) if available. - jikes_options="/usr/local/bin/jikes /usr/bin/jikes" + dnl Once upon a time we preferred Jikes for speed. + dnl Jikes is dead, long live Jikes! AC_ARG_WITH(jikes, AS_HELP_STRING([--with-jikes=PATH], - [Specify the path to a jikes binary to use - it as your Java compiler. The default is to - look for jikes (PATH optional). This behavior - can be switched off by supplying 'no'.]), + [Deprecated. Provided for backward compatibility.]), [ - if test "$withval" != "no" && test "$withval" != "yes"; then - dnl Assume a path was provided. - jikes_options="$withval $jikes_options" - fi - requested_jikes="$withval" # will be 'yes' if path unspecified - ]) - if test "$requested_jikes" != "no"; then - dnl Look for a usable jikes binary. - for jikes in $jikes_options; do - if test -z "$jikes_found" && test -x "$jikes"; then - jikes_found="yes" - JAVAC="$jikes" - JAVA_CLASSPATH="$JRE_LIB_DIR" - for jar in $JRE_LIB_DIR/*.jar; do - JAVA_CLASSPATH="$JAVA_CLASSPATH:$jar" - done - fi - done - fi - if test -n "$requested_jikes" && test "$requested_jikes" != "no"; then - dnl Jikes was explicitly requested. Verify that it was provided. - if test -z "$jikes_found"; then - AC_MSG_ERROR([Could not find a usable version of Jikes]) - elif test -n "$jikes_found" && test "$requested_jikes" != "yes" && - test "$JAVAC" != "$requested_jikes"; then - AC_MSG_WARN([--with-jikes PATH was invalid, substitute found]) + if test "$withval" != "no"; then + AC_MSG_WARN([The --with-jikes option was ignored]) fi - fi + ]) dnl Add javac flags. # The release for "-source" could actually be greater than that # of "-target", if we want to cross-compile for lesser JVMs. if test -z "$JAVAC_FLAGS"; then - JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.5" + JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6" if test "$enable_debugging" = "yes"; then JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS" if test -z "$JAVAC_COMPAT_FLAGS"; then Modified: subversion/branches/fsx-1.10/build/ac-macros/swig.m4 URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build/ac-macros/swig.m4?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build/ac-macros/swig.m4 (original) +++ subversion/branches/fsx-1.10/build/ac-macros/swig.m4 Sun Jun 14 20:58:10 2015 @@ -88,16 +88,13 @@ AC_DEFUN(SVN_FIND_SWIG, AC_MSG_RESULT([$SWIG_VERSION_RAW]) # If you change the required swig version number, don't forget to update: # subversion/bindings/swig/INSTALL - # packages/rpm/redhat-8+/subversion.spec - # packages/rpm/redhat-7.x/subversion.spec - # packages/rpm/rhel-3/subversion.spec - # packages/rpm/rhel-4/subversion.spec - if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then + if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \ + test "$SWIG_VERSION" -lt "300000"; then SWIG_SUITABLE=yes else SWIG_SUITABLE=no AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW]) - AC_MSG_WARN([Subversion requires SWIG 1.3.24 or later]) + AC_MSG_WARN([Subversion requires SWIG >= 1.3.24 and < 3.0.0 ]) fi fi Modified: subversion/branches/fsx-1.10/build/generator/gen_base.py URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build/generator/gen_base.py?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build/generator/gen_base.py (original) +++ subversion/branches/fsx-1.10/build/generator/gen_base.py Sun Jun 14 20:58:10 2015 @@ -22,6 +22,7 @@ # gen_base.py -- infrastructure for generating makefiles, dependencies, etc. # +import collections import os import sys import glob @@ -240,12 +241,16 @@ class GeneratorBase: os.rename(new_hdrfile, hdrfile) def write_file_if_changed(self, fname, new_contents): - """Rewrite the file if new_contents are different than its current content. + """Rewrite the file if NEW_CONTENTS are different than its current content. If you have your windows projects open and generate the projects it's not a small thing for windows to re-read all projects so only update those that have changed. + + Under Python >=3, NEW_CONTENTS must be a 'str', not a 'bytes'. """ + if sys.version_info[0] >= 3: + new_contents = new_contents.encode() try: old_contents = open(fname, 'rb').read() @@ -315,6 +320,93 @@ class GeneratorBase: def errno_filter(self, codes): return codes + class FileSectionOptionEnum(object): + # These are accessed via getattr() later on + file = object() + section = object() + option = object() + + def _client_configuration_defines(self): + """Return an iterator over SVN_CONFIG_* #define's in the "Client + configuration files strings" section of svn_config.h.""" + + pattern = re.compile( + r'^\s*#\s*define\s+' + r'(?P<macro>SVN_CONFIG_(?P<kind>CATEGORY|SECTION|OPTION)_[A-Z0-9a-z_]+)' + ) + kind = { + 'CATEGORY': self.FileSectionOptionEnum.file, + 'SECTION': self.FileSectionOptionEnum.section, + 'OPTION': self.FileSectionOptionEnum.option, + } + + fname = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), + 'subversion', 'include', 'svn_config.h') + lines = iter(open(fname)) + for line in lines: + if "@name Client configuration files strings" in line: + break + else: + raise Exception("Unable to parse svn_config.h") + + for line in lines: + if "@{" in line: + break + else: + raise Exception("Unable to parse svn_config.h") + + for line in lines: + if "@}" in line: + break + match = pattern.match(line) + if match: + yield ( + match.group('macro'), + kind[match.group('kind')], + ) + else: + raise Exception("Unable to parse svn_config.h") + + def write_config_keys(self): + groupby = collections.defaultdict(list) + empty_sections = [] + previous = (None, None) + for macro, kind in self._client_configuration_defines(): + if kind is previous[1] is self.FileSectionOptionEnum.section: + empty_sections.append(previous[0]) + groupby[kind].append(macro) + previous = (macro, kind) + else: + # If the last (macro, kind) is a section, then it's an empty section. + if kind is self.FileSectionOptionEnum.section: + empty_sections.append(macro) + + lines = [] + lines.append('/* Automatically generated by %s:write_config_keys() */' + % (__file__,)) + lines.append('') + + for kind in ('file', 'section', 'option'): + macros = groupby[getattr(self.FileSectionOptionEnum, kind)] + lines.append('static const char *svn__valid_config_%ss[] = {' % (kind,)) + for macro in macros: + lines.append(' %s,' % (macro,)) + # Remove ',' for c89 compatibility + lines[-1] = lines[-1][0:-1] + lines.append('};') + lines.append('') + + lines.append('static const char *svn__empty_config_sections[] = {'); + for section in empty_sections: + lines.append(' %s,' % (section,)) + # Remove ',' for c89 compatibility + lines[-1] = lines[-1][0:-1] + lines.append('};') + lines.append('') + + self.write_file_if_changed('subversion/libsvn_subr/config_keys.inc', + '\n'.join(lines)) + class DependencyGraph: """Record dependencies between build items. @@ -1208,6 +1300,9 @@ class IncludeDependencyInfo: if os.sep.join(['libsvn_subr', 'error.c']) in fname \ and 'errorcode.inc' == include_param: continue # generated by GeneratorBase.write_errno_table + if os.sep.join(['libsvn_subr', 'cmdline.c']) in fname \ + and 'config_keys.inc' == include_param: + continue # generated by GeneratorBase.write_config_keys elif direct_possibility_fname in domain_fnames: self._upd_dep_hash(hdrs, direct_possibility_fname, type_code) elif (len(domain_fnames) == 1 Modified: subversion/branches/fsx-1.10/build/generator/gen_msvc_dsp.py URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build/generator/gen_msvc_dsp.py?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build/generator/gen_msvc_dsp.py (original) +++ subversion/branches/fsx-1.10/build/generator/gen_msvc_dsp.py Sun Jun 14 20:58:10 2015 @@ -148,9 +148,9 @@ class Generator(gen_win.WinGeneratorBase depends = [ ] if not isinstance(target, gen_base.TargetI18N): depends = self.adjust_win_depends(target, name) - #print name - #for dep in depends: - # print " ",dep.name + #print name + #for dep in depends: + # print " ",dep.name dep_names = [ ] for dep in depends: Modified: subversion/branches/fsx-1.10/build/generator/gen_win.py URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/build/generator/gen_win.py?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/build/generator/gen_win.py (original) +++ subversion/branches/fsx-1.10/build/generator/gen_win.py Sun Jun 14 20:58:10 2015 @@ -70,7 +70,7 @@ class WinGeneratorBase(gen_win_dependenc # On Windows we create svn_private_config.h in the output directory since # r1370526. - # + # # Without this replacement all projects include a not-existing file, # which makes the MSBuild calculation to see whether a project is changed # far more expensive than necessary. @@ -86,7 +86,7 @@ class WinGeneratorBase(gen_win_dependenc printed = [] for lib in sorted(self._libraries.values(), key = lambda s: s.name): if lib.name in printed: - continue + continue printed.append(lib.name) print('Found %s %s' % (lib.name, lib.version)) @@ -761,7 +761,7 @@ class WinGeneratorBase(gen_win_dependenc "Return the list of include directories for target" fakeincludes = [ "subversion/include" ] - + for dep in self.get_win_depends(target, FILTER_EXTERNALLIBS): if dep.external_lib: for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
