Author: stefan2
Date: Wed Nov 19 14:37:04 2014
New Revision: 1640562
URL: http://svn.apache.org/r1640562
Log:
On the 1.8.x-r1536854 branch: Sync with 1.8.x up to r1640560. No conflicts.
Added:
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cert.h
- copied unchanged from r1640560,
subversion/branches/1.8.x/subversion/include/private/svn_cert.h
Modified:
subversion/branches/1.8.x-r1536854/ (props changed)
subversion/branches/1.8.x-r1536854/CHANGES (contents, props changed)
subversion/branches/1.8.x-r1536854/NOTICE
subversion/branches/1.8.x-r1536854/STATUS
subversion/branches/1.8.x-r1536854/build.conf
subversion/branches/1.8.x-r1536854/build/ac-macros/apache.m4
subversion/branches/1.8.x-r1536854/build/ac-macros/berkeley-db.m4
subversion/branches/1.8.x-r1536854/build/ac-macros/compiler.m4
subversion/branches/1.8.x-r1536854/build/ac-macros/serf.m4
subversion/branches/1.8.x-r1536854/build/generator/gen_win.py
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_sln.ezt
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_vcproj.ezt
subversion/branches/1.8.x-r1536854/configure.ac (contents, props changed)
subversion/branches/1.8.x-r1536854/get-deps.sh
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.cpp
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.h
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/python/tests/client.py
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/test/test_client.rb
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/svn_client.i
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cache.h
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_dep_compat.h
subversion/branches/1.8.x-r1536854/subversion/include/svn_io.h
subversion/branches/1.8.x-r1536854/subversion/include/svn_version.h
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/commit_util.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/delete.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/export.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/externals.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/merge.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/prop_commands.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_delta/svndiff.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_diff/parse-diff.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_fs_fs/caching.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_fs_fs/fs.h
subversion/branches/1.8.x-r1536854/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/commit.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/getlocks.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/locks.c
(contents, props changed)
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/options.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/update.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_serf/util.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_ra_svn/protocol
subversion/branches/1.8.x-r1536854/subversion/libsvn_repos/fs-wrap.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_repos/load-fs-vtable.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/cache-memcache.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/config_auth.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/config_file.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/dirent_uri.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/io.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/opt.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/prompt.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_subr/version.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_wc/status.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_wc/wc-queries.sql
subversion/branches/1.8.x-r1536854/subversion/libsvn_wc/wc_db.c
subversion/branches/1.8.x-r1536854/subversion/libsvn_wc/wc_db.h
subversion/branches/1.8.x-r1536854/subversion/mod_dav_svn/lock.c
subversion/branches/1.8.x-r1536854/subversion/mod_dav_svn/repos.c
subversion/branches/1.8.x-r1536854/subversion/po/de.po
subversion/branches/1.8.x-r1536854/subversion/po/es.po
subversion/branches/1.8.x-r1536854/subversion/po/fr.po
subversion/branches/1.8.x-r1536854/subversion/po/it.po
subversion/branches/1.8.x-r1536854/subversion/po/ja.po
subversion/branches/1.8.x-r1536854/subversion/po/ko.po
subversion/branches/1.8.x-r1536854/subversion/po/nb.po
subversion/branches/1.8.x-r1536854/subversion/po/pl.po
subversion/branches/1.8.x-r1536854/subversion/po/pt_BR.po
subversion/branches/1.8.x-r1536854/subversion/po/zh_CN.po
subversion/branches/1.8.x-r1536854/subversion/po/zh_TW.po
subversion/branches/1.8.x-r1536854/subversion/svn/conflict-callbacks.c
subversion/branches/1.8.x-r1536854/subversion/svn/svn.c (props changed)
subversion/branches/1.8.x-r1536854/subversion/svndumpfilter/svndumpfilter.c
subversion/branches/1.8.x-r1536854/subversion/svnrdump/util.c
subversion/branches/1.8.x-r1536854/subversion/svnserve/serve.c
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/commit_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/copy_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/export_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/externals_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/lock_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/merge_automatic_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/merge_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/move_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/prop_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/stat_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/svndumpfilter_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/svntest/main.py
subversion/branches/1.8.x-r1536854/subversion/tests/cmdline/wc_tests.py
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_diff/parse-diff-test.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_fs_fs/fs-pack-test.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_subr/dirent_uri-test.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_wc/conflict-data-test.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_wc/op-depth-test.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_wc/utils.c
subversion/branches/1.8.x-r1536854/subversion/tests/libsvn_wc/utils.h
subversion/branches/1.8.x-r1536854/tools/server-side/mod_dontdothat/mod_dontdothat.c
(props changed)
Propchange: subversion/branches/1.8.x-r1536854/
------------------------------------------------------------------------------
Merged /subversion/branches/1.8.x-r1579588:r1579589-1591112
Merged /subversion/branches/1.8.x-VS2013-14:r1603404-1615199
Merged /subversion/branches/1.8.x-issue4437:r1567249-1591140
Merged /subversion/branches/1.8.x-r1578311:r1578312-1589576
Merged /subversion/branches/1.8.x-r1584342:r1584350-1589572
Merged /subversion/branches/1.8.x-r1536931:r1536934-1591145
Merged /subversion/branches/1.8.x-r1577151:r1589064-1589574
Merged /subversion/branches/1.8.x-r1581305:r1581320-1582587
Merged /subversion/branches/1.8.x:r1579944-1640560
Merged /subversion/branches/1.8.x-javahl-exception-crash:r1586424-1588151
Merged
/subversion/trunk:r1481782,1518942,1531014,1532316,1536350,1536383,1536464,1536488,1536914,1536931,1538812,1538925,1538928,1538939,1543594,1544597,1544600,1544688,1544690,1545111,1545122,1545835,1545845,1547454,1550691,1550772,1552957-1552958,1553501,1553556,1555403,1559197,1561426,1561703,1565531,1566503-1566504,1567204,1567228,1568349,1568361,1569069,1570642,1571747,1571787,1571795,1572340,1573106,1573209,1575525,1575915,1577151,1577200,1577294,1577739,1577755,1577812-1577813,1578273,1578311,1578326,1578670,1578820,1578853,1578875,1579274,1579429,1579588,1579684,1580626,1580650,1580832,1580867,1580872,1581296,1581305,1581315,1581430,1581810,1583580,1583977,1584342,1584576,1584592,1584745,1585686,1586052,1586255,1586352,1586467,1587511,1587946,1587968,1588772,1588778,1589184,1589188,1589460,1589486,1590212,1591123,1592014,1592034,1593992,1594156,1594223,1594794,1594814,1594834,1595061,1595431,1596866,1600311,1600315,1600323,1600393,1600909,1601851,1606009,1612225,1615211,16
15219,1615255-1615256,1615260,1615263,1616131,1619105,1619118,1619153,1619774,1619802,1636874
Merged
/subversion/branches/1.8.x-r1580626:r1580631,1580652,1580661,1581435,1588382-1591134
Merged /subversion/branches/1.8.x-serf-no-lock-support:r1584583-1591109
Merged /subversion/branches/1.8.x-rm-external-dir:r1600632-1615197
Merged /subversion/branches/1.8.x-r1577812:r1577814-1588145
Merged /subversion/branches/1.8.x-r1619774:r1626728-1640478
Merged /subversion/branches/1.8.x-r1578853:r1578879-1581682
Merged /subversion/branches/1.8.x-issue4480:r1588773-1591136
Merged /subversion/branches/1.8.x-r1594223:r1594224-1606975
Merged /subversion/branches/1.8.x-r1544597:r1564547-1591149
Merged /subversion/branches/1.8.x-apr-0.9:r1585493-1589570
Merged /subversion/branches/1.8.x-r1561426:r1561547-1640480
Modified: subversion/branches/1.8.x-r1536854/CHANGES
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/CHANGES?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/CHANGES (original)
+++ subversion/branches/1.8.x-r1536854/CHANGES Wed Nov 19 14:37:04 2014
@@ -1,3 +1,112 @@
+Version 1.8.10
+(11 Aug 2014, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.10
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * guard against md5 hash collisions when finding cached credentials
+ (r1550691, r1550772, r1600909)
+ * ra_serf: properly match wildcards in SSL certs. (r1615211, 1615219)
+ * ra_serf: ignore the CommonName in SSL certs where there are Subject Alt
+ Names (r1565531, r1566503, r1568349, r1568361)
+ * ra_serf: fix a URI escaping bug that prevented deleting locked paths
+ (r1594223, r1553501, r1553556, r1559197, issue #3674)
+ * rm: Display the proper URL when deleting a URL in the commit log editor
+ (r1591123)
+ * log: Fix another instance of broken pipe error (r1596866, issue #3014)
+ * copy: Properly handle props not present or excluded on cross wc copy
+ (r1589184, r1589188)
+ * copy: Fix copying parents of locally deleted nodes between wcs
+ (r1589460, r1589486)
+ * externals: Properly delete ancestor directories of externals when
+ removing the external by changing svn:externals. (r1600311, 1600315,
+ r1600323, r1600393)
+ * ra_serf: fix memory lifetime of some hash values (r1606009)
+
+ - Server-side bugfixes:
+ * fsfs: omit config file when creating pre-1.5 format repos (r1547454,
+ r1561703)
+
+ Developer-visible changes:
+ - General:
+ * fix improper linking when serf is in the same prefix as existing svn
+ libraries. (r1609004)
+ * use proper intermediate directory when building with VS 2003-2008
+ (r1595431)
+ * support generating VS 2013 and later project files.
+
+ - Bindings:
+ * ruby: removing warning about Ruby 1.9 support being new. (r1593992)
+ * python: fix notify_func callbacks (r1594794, r1594814, r1594834,
r1595061)
+
+
+Version 1.8.9
+(07 May 2014, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.9
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * log: use proper peg revision over DAV (r1568872)
+ * upgrade: allow upgrading from 1.7 with exclusive locks (r1572102 et al)
+ * proplist: resolve inconsitent inherited property results (r1575270 et al)
+ * increase minimal timestamp sleep from 1ms to 10ms (r1581305 et al)
+ * merge: automatic merge confused by subtree merge (issue #4481)
+ * propget: report proper error on invalid revision for url (r1586255)
+ * commit: fix an assertion when committing a deleted descendant
+ (r1571747, r1571787, r1571795)
+ * merge: resolve segfault when '--force' merges a directory delete
+ (r1577812, r1577813, r1579429)
+ * resolve: prevent interactive conflict resolution when nothing has been
+ done to resolve the conflict (r1577294)
+ * update: fix locks lost from wc with pre-1.6.17 servers (issue #4412)
+ * merge: honor the 'preserved-conflict-file-exts' setting (r1577151)
+ * list: fix '--verbose' against older servers (r1591111)
+ * unlock: fix ability to remove locks with timeouts (r1579588)
+ * copy: fix 'svn copy URL WC' on relocated working copies
+ (r1580626, r1580650)
+ * export: allow file externals to be exported (issue #4427)
+ * move: fix working copy db inconsistency in cert scenarios (issue #4437)
+ * commit: fix an issue where mixed revision copy with non copy descendants
+ that shadow a not present node couldn't be committed (r1518942 et al)
+ * delete: properly remove move_to info when the node in its original
+ location is removed (r1538812 et al)
+ * status; fix an issue where output would vary based on if the target
+ was the node itself or its parent (r1544597 et al)
+
+ - Server-side bugfixes:
+ * ensure proper access synchronization in fsfs on Windows (r1568953 et al)
+ * svnadmin dump: don't let invalid mergeinfo stop dump (r1574868 et al)
+ * svnserve: resolve performance regression caused by iprops (r1578853 et
al)
+ * reduce size of memory buffer when reading config files (r1581296)
+ * remove dead transaction if commit was blocked by hook (r1583977)
+ * svnrdump load: fix crash when svn:* normalization (issue #4490)
+ * fix memcached support (issue #4470)
+ * svndumpfilter: fix order of node record headers (r1578670 et al)
+ * mod_dav_svn: blacklist building with broken versions of httpd; 2.2.25,
+ 2.4.5 and 2.4.6 (r1545835)
+ * mod_dav_svn: allow generic DAV clients to refresh locks (issue #3515)
+ * mod_dav_svn: detect out of dateness correctly during commit (issue #4480)
+
+ Developer-visible changes:
+ - General:
+ * improve consistency checks of DAV inherited property requests (r1498000)
+ * fix ocassional failure in autoprop_tests.py (r1567752)
+ * avoid duplicate sqlite analyze information rows (r1571214)
+ * add Mavericks to our sysinfo output (r1573088)
+ * bump copyright years to 2014 (r1555403)
+ * unbreak test suite when running as root (r1583580)
+ * resolve buffer overflow in testcode (r1481782)
+ * fix libmagic detection with custom LDFLAGS (r1577200)
+ * fix an out of scope variable use in merge (r1587946)
+ * javahl: fix crash from resolve callback throwing an exception (r1586439)
+ * ruby: fix two memory lifetime bugs (r1586052, r1586467)
+ * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
+ * fix building with APR 0.9.x (r1585499)
+ * make svn_ra_get_locks() and svn_ra_get_lock() report not locked nodes
+ with a NULL svn_lock_t *, as documented (r1578273, r1578311, r1578326)
+ * fix tests for compiler flags (r1573106)
+
+
Version 1.8.8
(19 Feb 2014, from /branches/1.8.x)
http://svn.apache.org/repos/asf/subversion/tags/1.8.8
@@ -620,9 +729,54 @@ http://svn.apache.org/repos/asf/subversi
* fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
-Version 1.7.15
-(12 Feb 2014, from /branches/1.7.x)
-http://svn.apache.org/repos/asf/subversion/tags/1.7.15
+Version 1.7.18
+(11 Aug 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.18
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * guard against md5 hash collisions when finding cached credentials
+ (r1550691, r1550772, r1600909)
+ * ra_serf: properly match wildcards in SSL certs. (r1615211, 1615219)
+ * ra_serf: ignore the CommonName in SSL certs where there are Subject Alt
+ Names (r1565531, r1566503, r1568349)
+
+ Developer-visible changes:
+ - General:
+ * fix ocassional failure in checkout_tests.py test 12. (r1496127)
+ * disable building ZLib's assembly optimizations on Windows.
+
+
+Version 1.7.17
+(07 May 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.17
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * log: use proper peg revision over DAV (r1568872)
+ * move: fix errors when moving files between an external and the parent
+ working copy (r1551579)
+ * copy: fix 'svn copy URL WC' on relocated working copies
+ (r1580626, r1580650)
+
+ - Server-side bugfixes:
+ * mod_dav_svn: blacklist building with broken versions of httpd; 2.2.25,
+ 2.4.5 and 2.4.6 (r1545835)
+ * mod_dav_svn: detect out of dateness correctly during commit (issue #4480)
+
+ Developer-visible changes:
+ - General:
+ * fix libmagic detection with custom LDFLAGS (r1577200)
+ * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
+ * support building with Serf 1.3.x (r1517123, r1535139)
+
+ - Bindings:
+ * javahl: fix crash from resolve callback throwing an exception (r1586439)
+
+
+Version 1.7.16
+(26 Feb 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.16
User-visible changes:
- Client-side bugfixes:
@@ -637,6 +791,11 @@ http://svn.apache.org/repos/asf/subversi
- General:
* fix failure in checkout_tests.py
* support compiling against Cyrus sasl 2.1.25 (r1404912, r1413402)
+ * support compiling against neon 0.30.x (r1566320)
+
+
+Version 1.7.15
+(Not released, see changes for 1.7.16.)
Version 1.7.14
@@ -883,7 +1042,7 @@ http://svn.apache.org/repos/asf/subversi
* fix ra_serf against Subversion 1.2 servers (r1349367)
* fix 'svn upgrade' on working copies with certain tree conflicts
(r1345482)
* avoid workqueue references to system temp dir (r1367854)
- * allow non-existant canonical paths (r1367853)
+ * allow non-existent canonical paths (r1367853)
* fix 'svn revert --depth files' to operate on files (r1365554)
* fix ra_serf XML namespace handling against malicious server (r1337441)
* fix relocate with server-relative externals (issue 4216)
@@ -1235,7 +1394,7 @@ the 1.6 release: http://subversion.apac
* fixed: rm -> ci -> cp = missing directory (issue #2763)
* fixed: 'svn info' returns parent info on missing dirs (issue #3178)
* fixed: spurious prop conflict with 'merge --reintegrate' (issue #3919)
- * fixed: 'svn --version' fails with non-existant $HOME (issue #3947)
+ * fixed: 'svn --version' fails with non-existent $HOME (issue #3947)
* fixed: unforced export silently overwites existing file (issue #3799)
* fixed: reverse merge which adds subtree mergeinfo fails (issue #3978)
* fixed: 'svn up -r{R>HEAD}' hangs client over ra_svn (issue #3963)
@@ -1410,7 +1569,7 @@ http://svn.apache.org/repos/asf/subversi
* fix crash in mod_dav_svn with GETs of baselined resources (r1104126)
See CVE-2011-1752, and descriptive advisory at
http://subversion.apache.org/security/CVE-2011-1752-advisory.txt
- * fixed: write-through proxy could direcly commit to slave (r917523)
+ * fixed: write-through proxy could directly commit to slave (r917523)
* detect a particular corruption condition in FSFS (r1100213)
* improve error message when clients refer to unknown revisions (r939000)
* bugfixes and optimizations to the DAV mirroring code (r878607)
Propchange: subversion/branches/1.8.x-r1536854/CHANGES
------------------------------------------------------------------------------
Merged /subversion/branches/1.8.x-r1536931/CHANGES:r1536934-1591145
Merged /subversion/branches/1.8.x-issue4437/CHANGES:r1567249-1591140
Merged /subversion/branches/1.8.x/CHANGES:r1579874-1640560
Merged
/subversion/trunk/CHANGES:r1569069,1573006,1585453,1586333,1590212,1591156,1591168,1615255-1615256,1615260
Modified: subversion/branches/1.8.x-r1536854/NOTICE
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/NOTICE?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/NOTICE (original)
+++ subversion/branches/1.8.x-r1536854/NOTICE Wed Nov 19 14:37:04 2014
@@ -1,5 +1,5 @@
Apache Subversion
-Copyright 2013 The Apache Software Foundation
+Copyright 2014 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/1.8.x-r1536854/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/STATUS?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/STATUS (original)
+++ subversion/branches/1.8.x-r1536854/STATUS Wed Nov 19 14:37:04 2014
@@ -10,20 +10,11 @@ See http://subversion.apache.org/docs/co
for details on how release lines and voting work, what kinds of bugs can
delay a release, etc.
-Status of 1.8.9:
+Status of 1.8.11:
Candidate changes:
==================
- * r1469519, r1469520, r1481848, r1481870
- Silence compiler warnings, tighten scopes and improve code.
- Justification:
- Clean builds make it more likely to notice real compiler warnings.
- Branch: ^/subversion/branches/1.8.x-r1469519-and-friends
- Votes:
- +1: blair, brane
- -0: philip (see dev thread: false alarm, trades one warning for another)
-
* r1501293, r1501338, r1501360, r1501533
Fix issue #4390, "parallel nested checkout not possible with wc-ng"
Justification:
@@ -42,29 +33,6 @@ Candidate changes:
a related problem. It looks like this fix doesn't work for
the user scenario it was intended for)
- * r1531014, r1532316, r1536350, r1536383, r1536464, r1536488, r1567204,
r1567228
- Fix working copy database inconsistency on certain move scenarios,
- including those described in issue #4437 "Deleting a moved file can
maintain a
- half move"
- Justification:
- The working copy database should be consistent on any normal operation.
- Branch:
- ^/subversion/branches/1.8.x-issue4437
- Votes:
- +1: rhuijben
- +1: (before branch, without r1567204, r1567228) philip
-
- * r1518942, r1536914, r1536931
- Fix commit of a specific mixed revision copy with non copy descendants that
- shadow not present nodes. This problem manifests itself as a copy of a tree
- that can't be committed because it is reported out of date.
- Justification:
- 'svn cp TREE NEW-TREE; svn ci NEW-TREE' should never report out of date
- on some random descendant.
- Branch: ^/subversion/branches/1.8.x-r1536931
- Votes:
- +1: rhuijben
-
* r1536854
Make 'svnadmin verify' detect inconsistencies that will prevent loading
dump files.
@@ -76,17 +44,7 @@ Candidate changes:
Branch: ^/subversion/branches/1.8.x-r1536854
Votes:
+1: stefan2
-
- * r1538812, r1538925, r1538928, r1538939
- Properly remove moved_to information when the node in its original location
- is removed.
- Justification:
- The NODES table in the working copy database should always be consistent.
- Notes:
- rhuijben: The test for this problem might accidentally depend on other
- move fixes on trunk.
- Votes:
- +1: rhuijben, philip
+ +0: breser (I'd be +1 if not for the unused function in svnadmin_tests.py)
* r1542610, r1564576, r1568180
Add missing description to build.conf, to properly generate a version
@@ -99,28 +57,6 @@ Candidate changes:
+1: (without r1564567, r1568180): stsp
-0: brane (horrible grammar; suggest translation to English)
- * r1544597, r1544600, r1544688, r1544690, r1545111, r1545122
- Fix a specific case where the api behind status would report a different
- move status for A depending on whether the user called 'svn status A' or
- 'svn status wc' and then looked at 'wc/A'.
- Justification:
- Api users such as AnkhSVN rely on the result of svn status to match and
- this breaks their assumptions.
- This change has the nice side effect that it resolves the most common
- user triggerable assertion in AnkhSVN, which is really caused by a
- broken move. (See other nomination for a fix). But even then it shouldn't
- matter how status is called: on the node or an ancestor.
- (It also improves status performance a tiny bit, by reducing the number
- of sqlite transactions used)
- Notes:
- r1564587 fixes a function reference on the branch in some code that
- is disabled by the macro processor on Windows.
- Branch:
- ^/subversion/branches/1.8.x-r1544597
- Votes:
- +1: rhuijben
- -0 (before branch): philip (Doesn't build, needs a branch due to r1539279)
-
* r1555491
Fix svn_fs_close_root for FSFS transaction roots.
Justification:
@@ -133,141 +69,113 @@ Candidate changes:
+1: stefan2
-0: philip, rhuijben (Seems to be a different name for the same pool?)
- * r1547454
- In FSFS, omit config file when creating pre-1.5 format repositories.
+ * r1589360
+ Make property output in 'svn diff' stable
Justification:
- Old SVN versions won't preserve this file in hotcopy. Later versions
- might also behave inconsistently in the presence of this file if their
- feature availability check is incomplete.
- Votes:
- +1: stefan2
- -0: rhuijben (Might require r1561703 to avoid breaking tests)
-
- * r1561426
- In FSFS, skip the generation of uniquifiers if rep-shared is no supported.
- Branch: ^/subversion/branches/1.8.x-r1561426
- Justification:
- This is not known to be a bug, atm, as we omit these when we write the
- final revisions. But we rely on those uniquifiers to be NULL in old
- repo formats when we compare reps. Them being non-NULL in a txn might
- cause problems with future changes.
- Votes:
- +1: stefan2
-
- * r1567996, r1568009, r1568062, r1568063
- Fix a caching inefficiency in multi-threaded servers.
- Justification:
- .
- Notes:
- Due to going back and forth with different approaches to solve this
- issue, the best way to review this
+ Local change that makes it easier to compare patch files.
Branch:
- ^/subversion/branches/1.8.x-r1567996
+ ^/subversion/branches/1.8.x-r1589360
Votes:
- +1: stefan2
- -0: rhuijben (incomplete (misses cache->total_reads accesses) and
- overkill. The whole thing can be implemented with simple
- atomic operations while mutexes may be a limited resource)
+ +1: ivan, rhuijben
+ -0: stefan2 (compiler misses "private/svn_sorts_private.h",
+ before branch)
- * r1571747, r1571787, r1571795
- Resolve the 'commit_util.c' (repos_root_url && repos_relpath) assertion.
- Notes:
- This assertion is raised when specifically committing a deleted
- descendant, like via a checkbox list in a GUI client.
+ * r1590751
+ Use empty, rather than NULL, config if default is unreadable.
Justification:
- Often reported assertion by users. Upto now very hard to reproduce
- for these users. Probably because they didn's see that the node they
- deleted wasn't added to the repository yet.
+ svn SEGV reported by user.
Votes:
- +1: rhuijben, philip
+ +1: philip
+ -0: julianfoad (prefer to fix all the programs at the same time;
+ other queries -- see email thread)
- * r1575525, r1575915
- Resolve issue #4427: File externals can't be exported.
- Justification:
- File externals 'are just files', so why should they be discriminated
- by export?
+ * r1600331, r1600348, 1600368, r1600563, r1600781
+ Improve gpg-agent support.
+ Justification: Avoids spurious error logs, supports standard socket
+ locations and removes double prompts from pinentry. Without these
+ changes it's far less desireable to use.
Notes:
- r1575525 resolves the most important issues, but in some cases still
- doesn't allow exporting file externals. r1575915 simplifies the fix and
- resolves a few remaining issues.
+ Branch is needed since SVN_VA_NULL is not available in 1.8.x.
+ This does change the behavior of gpg-agent from prompting twice
+ for the password with pinentry to confirm the user hasn't entered
+ an incorrect password to instead clearing bad cached passwords and
+ reprompting. See my email on the subject:
https://mail-archives.apache.org/mod_mbox/subversion-dev/201406.mbox/%3C538D2BE5.3070706%40reser.org%3E
+ Branch:
+ ^/subversion/branches/1.8.x-gpg-agent
Votes:
- +1: rhuijben
+ +1: breser, philip
- * r1577151
- Make 'svn merge' honor the 'preserved-conflict-file-exts' setting.
+ * r1619380, r1619393
+ Fix diff of a locally copied directory with props: it showed all props
+ as added instead of a diff against the copy-from props.
Justification:
- While really a behavior change that doesn't belong in a patch release
- I'm guessing nobody knew that we didn't implement this flag in this
- scenario.
+ Behaviour regression introduced in 1.8.0.
+ Notes:
+ r1619380 is the fix; r1619393 a test for it.
+ The test on trunk@1619393 is tweaked to account for a trunk bug in the
+ display of diff headers; the backport branch provides the correct
+ version for 1.8.x.
+ Branch:
+ ^/subversion/branches/1.8.x-r1611379
Votes:
- +1: rhuijben
+ +1: julianfoad, rhuijben
- * r1577294
- Make interactive conflict resolver behave as designed.
+ * r1620332
+ Remove broken conflict resolver menu options.
Justification:
- This was intended to be the behavior form the start. A typo in a
- refactoring broke it. This fix helps users avoid accidentally choosing
- 'mark resolved' and committing conflict markers.
+ svn shouldn't offer menu options that always error out.
+ Notes:
+ Run merge with --accept theirs-conflict
Votes:
- +1: breser
+ +1: stsp, julianfoad
- * r1577812, r1577813, r1579429
- Resolve a segfault when 'svn merge --force' merges a directory delete
+ * r1621978, r1621981
+ Fix changelist filtering for repos-WC and WC-WC diffs.
Justification:
- Even though this merge flag is not recommended, it shouldn't cause a
- segfault.
- Notes:
- r1577812 contains the actual fix and a regression test. r1577813 is
- a minor improvement. A branch is necessary because a comment right above
- the fix contained a typo that was fixed on trunk in a huge commit of many
- typo fixes.
+ Changelist filtering, enabled by "svn diff --cl foo" for example, was
+ broken (it crashed in common cases) and incomplete even if the crash
+ were avoided. See email thread "Segmentation fault during diff generation"
+ starting at <http://svn.haxx.se/dev/archive-2014-08/0325.shtml>.
Branch:
- ^/subversion/branches/1.8.x-r1577812
+ ^/subversion/branches/1.8.x-r1621978
Votes:
- +1: philip, rhuijben
+ +1: julianfoad, rhuijben
- * r1578273, r1578311, r1578326
- Make svn_ra_get_locks() and svn_ra_get_lock() report not locked nodes
- with a NULL svn_lock_t *, as documented.
- Justification:
- Many clients use the existance of an svn_lock_t on a node via info/status
- as a boolean to note that there is a lock. But because we didn't properly
- check the result we reported mostly empty svn_lock_t instances in more
- cases. Even on directories!
- Notes:
- A branch is needed, because the serf lock handling code was refactored and
- split to multiple files on trunk.
- Branch:
- ^/subversion/branches/1.8.x-r1578311
+ * r1625533, r1625537
+ Keep externals registrations on 'svn upgrade' (part of issue 4519)
+ Justification:
+ 'svn upgrade' shouldn't destroy valid information.
Votes:
- +1: rhuijben, philip
+ +1: rhuijben
- * r1578670, r1578820, r1579274
- Fix the order of node record headers written by svndumpfilter.
+ * r1628536
+ Fix issue #4085, "external can shadow a versioned directory".
Justification:
- Makes output match the rules documented in notes/dump-load-format.txt.
+ Bug that can lead to a working copy which cannot be updated
+ until a directory shadowing an external, which was switched
+ to the external's location by the externals handling code,
+ is switched back to its original path.
Votes:
- +1: philip, rhuijben
+ +1: stsp
- * r1578853, r1578875
- Fix svnserve to only send inherited properties when necessary.
+ * r1633126
+ Improve performance of recorded timestamp fixups in svn cleanup
Justification:
- Performance regression from 1.7, reported by a user.
+ Fixing timestamps on a working copy with properly recorded timestamps
+ should not cost 10* the time of walking the working copy for status.
Branch:
- ^/subversion/branches/1.8.x-r1578853
+ ^/subversion/branches/1.8.x-r1633126
Votes:
- +1: philip, rhuijben
+ +1: rhuijben
- * r1579588
- ra_serf: Fix 'svn unlock' interop with generic DAV clients that use timeout
+ * r1637826
+ Fix typos in LIBTOOL_M4 and LIBTOOL_CONFIG expansion in autogen.sh
Justification:
- Local fix to resolve user reported issue.
- Notes:
- Branch needed as the lock code was split to multiple files on trunk.
- Branch:
- ^/subversion/branches/1.8.x-r1579588
+ Makes no sense to tell users to set environment variables
+ to fix builds with libtool in a nonstandard location, if we
+ then don't interpret said environment variables correctly.
Votes:
- +1: rhuijben
+ +1: brane
Veto-blocked changes:
=====================
Modified: subversion/branches/1.8.x-r1536854/build.conf
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build.conf?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build.conf (original)
+++ subversion/branches/1.8.x-r1536854/build.conf Wed Nov 19 14:37:04 2014
@@ -342,6 +342,7 @@ msvc-export =
private\svn_temp_serializer.h private\svn_io_private.h
private\svn_string_private.h private\svn_magic.h
private\svn_subr_private.h private\svn_mutex.h
private\svn_named_atomic.h
+ private\svn_cert.h
# Working copy management lib
[libsvn_wc]
Modified: subversion/branches/1.8.x-r1536854/build/ac-macros/apache.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/ac-macros/apache.m4?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/ac-macros/apache.m4 (original)
+++ subversion/branches/1.8.x-r1536854/build/ac-macros/apache.m4 Wed Nov 19
14:37:04 2014
@@ -118,6 +118,27 @@ apache_minor_version=AP_SERVER_MINORVERS
CPPFLAGS="$old_CPPFLAGS"
fi
+# check for some busted versions of mod_dav
+# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
+# troublesome for Subversion:
+# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
+# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
+# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
+if test -n "$APXS" && test "$APXS" != "no"; then
+ AC_MSG_CHECKING([mod_dav version])
+ old_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
+ blacklisted_versions_regex=["\"2\" \"\.\" (\"2\" \"\.\" \"25\"|\"4\" \"\.\"
\"[56]\")"]
+ AC_EGREP_CPP([apache_version= *$blacklisted_versions_regex],
+ [
+#include "$APXS_INCLUDE/ap_release.h"
+apache_version=AP_SERVER_BASEREVISION],
+ [AC_MSG_RESULT([broken])
+ AC_MSG_ERROR([Apache httpd version includes a broken mod_dav;
use a newer version of httpd])],
+ [AC_MSG_RESULT([acceptable])])
+ CPPFLAGS="$old_CPPFLAGS"
+fi
+
AC_ARG_WITH(apache-libexecdir,
[AS_HELP_STRING([[--with-apache-libexecdir[=PATH]]],
[Install Apache modules to Apache's configured
Modified: subversion/branches/1.8.x-r1536854/build/ac-macros/berkeley-db.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/ac-macros/berkeley-db.m4?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/ac-macros/berkeley-db.m4 (original)
+++ subversion/branches/1.8.x-r1536854/build/ac-macros/berkeley-db.m4 Wed Nov
19 14:37:04 2014
@@ -89,7 +89,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
done
SVN_DB_INCLUDES="${SVN_DB_INCLUDES## }"
for l in [`echo "$withval" | $SED -e "s/.*:[^:]*:\([^:]*\):.*/\1/"`];
do
- LDFLAGS="$LDFLAGS -L$l"
+ LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$l)`"
done
SVN_DB_LIBS=""
for l in [`echo "$withval" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do
Modified: subversion/branches/1.8.x-r1536854/build/ac-macros/compiler.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/ac-macros/compiler.m4?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/1.8.x-r1536854/build/ac-macros/compiler.m4 Wed Nov 19
14:37:04 2014
@@ -33,24 +33,27 @@ AC_DEFUN([_SVN_XXFLAGS_ADD_IFELSE],
[
_svn_xxflags__save="[$][$3]"
AC_LANG_PUSH([$1])
- AC_MSG_CHECKING([if [$][$2] accepts $4])
- [$3]="$4 [$][$3]"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],[
+ AC_MSG_CHECKING([if [$][$2] accepts $5])
+ [$3]="$5 [$][$3]"
+ dnl Compiling is not enough: Solaris cc accepts invalid options at
+ dnl compile-time and just warns, assuming they are for the linker,
+ dnl but they cause errors at link-time.
+ AC_LINK_IFELSE([AC_LANG_SOURCE([$4])],[
AC_MSG_RESULT([yes])
- $5
+ $6
],[
AC_MSG_RESULT([no])
[$3]="$_svn_xxflags__save"
- $6
+ $7
])
AC_LANG_POP([$1])
])
AC_DEFUN([SVN_CFLAGS_ADD_IFELSE],
- [_SVN_XXFLAGS_ADD_IFELSE([C],[CC],[CFLAGS],[$1],[$2],[$3])])
+ [_SVN_XXFLAGS_ADD_IFELSE([C],[CC],[CFLAGS],[[int main(void){return
0;}]],[$1],[$2],[$3])])
AC_DEFUN([SVN_CXXFLAGS_ADD_IFELSE],
- [_SVN_XXFLAGS_ADD_IFELSE([C++],[CXX],[CXXFLAGS],[$1],[$2],[$3])])
+ [_SVN_XXFLAGS_ADD_IFELSE([C++],[CXX],[CXXFLAGS],[[int
main(){}]],[$1],[$2],[$3])])
AC_DEFUN([SVN_CC_MODE_SETUP],
Modified: subversion/branches/1.8.x-r1536854/build/ac-macros/serf.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/ac-macros/serf.m4?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/ac-macros/serf.m4 (original)
+++ subversion/branches/1.8.x-r1536854/build/ac-macros/serf.m4 Wed Nov 19
14:37:04 2014
@@ -98,7 +98,7 @@ AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES $SVN_APRUTIL_INCLUDES
-I$serf_prefix/include/$serf_major"
AC_CHECK_HEADERS(serf.h,[
save_ldflags="$LDFLAGS"
- LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
+ LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$serf_prefix/lib)`"
AC_CHECK_LIB($serf_major, serf_context_create,[
AC_TRY_COMPILE([
#include <stdlib.h>
@@ -121,7 +121,7 @@ AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
SVN_SERF_LIBS="$serf_prefix/lib/lib$serf_major.la"
else
SVN_SERF_LIBS="-l$serf_major"
- LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
+ LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$serf_prefix/lib)`"
fi
fi
])
Modified: subversion/branches/1.8.x-r1536854/build/generator/gen_win.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/generator/gen_win.py?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/generator/gen_win.py (original)
+++ subversion/branches/1.8.x-r1536854/build/generator/gen_win.py Wed Nov 19
14:37:04 2014
@@ -189,8 +189,13 @@ class GeneratorBase(gen_base.GeneratorBa
self.sln_version = '12.00'
self.vcproj_version = '11.0'
self.vcproj_extension = '.vcxproj'
+ elif val == '2013' or val == '12':
+ self.vs_version = '2013'
+ self.sln_version = '12.00'
+ self.vcproj_version = '12.0'
+ self.vcproj_extension = '.vcxproj'
elif re.match('^1\d+$', val):
- self.vsversion = val
+ self.vs_version = val
self.sln_version = '12.00'
self.vcproj_version = val + '.0'
self.vcproj_extension = '.vcxproj'
Modified:
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_sln.ezt
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_sln.ezt?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_sln.ezt
(original)
+++ subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_sln.ezt
Wed Nov 19 14:37:04 2014
@@ -21,7 +21,9 @@
#
[end]Microsoft Visual Studio Solution File, Format Version [version]
# Visual Studio [vs_version]
-[for targets]Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =
"[targets.name]", "[targets.path]", "[targets.guid]"
+[is version "12.00"]VisualStudioVersion = 12.3.4.5
+MinimumVisualStudioVersion = 10.0.40219.1
+[end][for targets]Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =
"[targets.name]", "[targets.path]", "[targets.guid]"
[is dependency_location "solution"] ProjectSection(ProjectDependencies) =
postProject
[for targets.depends] [targets.depends.guid] = [targets.depends.guid]
[end] EndProjectSection
Modified:
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_vcproj.ezt
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_vcproj.ezt?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_vcproj.ezt
(original)
+++
subversion/branches/1.8.x-r1536854/build/generator/templates/vcnet_vcproj.ezt
Wed Nov 19 14:37:04 2014
@@ -32,7 +32,7 @@
Name="[configs.name]|[platforms]"
OutputDirectory="..\..\..\[configs.name]\[target.output_dir]"
BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
-
IntermediateDirectory="..\..\..\[configs.name]\[target.intermediate_dir]"
+
IntermediateDirectory="..\..\..\[configs.name]\[target.intermediate_dir]\[target.proj_name]"
ConfigurationType="[target_type]"[is configs.name
"Release"]
WholeProgramOptimization="FALSE"[end]>
<Tool
Modified: subversion/branches/1.8.x-r1536854/configure.ac
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/configure.ac?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/configure.ac (original)
+++ subversion/branches/1.8.x-r1536854/configure.ac Wed Nov 19 14:37:04 2014
@@ -98,7 +98,7 @@ dnl now generating errors instead of s
dnl them. Only .7 and later can guarantee repository
dnl integrity with FSFS.
-APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."]
+APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.[12][0-9] 1\. 2\."]
SVN_LIB_APR($APR_VER_REGEXES)
@@ -755,7 +755,7 @@ AC_ARG_WITH(libmagic,AS_HELP_STRING([--w
CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include"
AC_CHECK_HEADERS(magic.h,[
save_ldflags="$LDFLAGS"
- LDFLAGS="-L$libmagic_prefix/lib"
+ LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS"
AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"])
LDFLAGS="$save_ldflags"
])
@@ -1280,10 +1280,6 @@ if test "$RUBY" != "none"; then
RUBY="none"
AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time])
- elif test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a
"$RUBY_TEENY" -eq "3" \); then
- #Warn about 1.9.3 support
- AC_MSG_WARN([WARNING: The detected Ruby is 1.9.3])
- AC_MSG_WARN([WARNING: Only 1.8.x releases are fully supported, 1.9.3
support is new])
fi
else
AC_MSG_RESULT([no])
Propchange: subversion/branches/1.8.x-r1536854/configure.ac
------------------------------------------------------------------------------
Merged /subversion/branches/1.8.x-r1579588/configure.ac:r1579589-1591112
Merged /subversion/branches/1.8.x-r1536931/configure.ac:r1536934-1591145
Merged /subversion/branches/1.8.x/configure.ac:r1579874-1640560
Merged /subversion/branches/1.8.x-issue4437/configure.ac:r1567249-1591140
Merged /subversion/branches/1.8.x-apr-0.9/configure.ac:r1585493-1589570
Merged /subversion/trunk/configure.ac:r1577200,1593992
Modified: subversion/branches/1.8.x-r1536854/get-deps.sh
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/get-deps.sh?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/get-deps.sh (original)
+++ subversion/branches/1.8.x-r1536854/get-deps.sh Wed Nov 19 14:37:04 2014
@@ -33,11 +33,11 @@
APR_VERSION=${APR_VERSION:-"1.4.6"}
APU_VERSION=${APU_VERSION:-"1.5.1"}
-SERF_VERSION=${SERF_VERSION:-"1.2.1"}
+SERF_VERSION=${SERF_VERSION:-"1.3.4"}
ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
SQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"}
GTEST_VERSION=${GTEST_VERSION:-"1.6.0"}
-HTTPD_VERSION=${HTTPD_VERSION:-"2.4.6"}
+HTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"}
APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
APR=apr-${APR_VERSION}
@@ -57,7 +57,7 @@ TEMPDIR=$BASEDIR/temp
HTTP_FETCH=
[ -z "$HTTP_FETCH" ] && type wget >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc"
-[ -z "$HTTP_FETCH" ] && type curl >/dev/null 2>&1 && HTTP_FETCH="curl -sO"
+[ -z "$HTTP_FETCH" ] && type curl >/dev/null 2>&1 && HTTP_FETCH="curl -sOL"
[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q"
# Need this uncommented if any of the specific versions of the ASF tarballs to
@@ -89,7 +89,7 @@ get_serf() {
test -d $BASEDIR/serf && return
cd $TEMPDIR
- $HTTP_FETCH http://serf.googlecode.com/files/$SERF.tar.bz2
+ $HTTP_FETCH http://serf.googlecode.com/svn/src_releases/$SERF.tar.bz2
cd $BASEDIR
bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf -
@@ -101,7 +101,7 @@ get_zlib() {
test -d $BASEDIR/zlib && return
cd $TEMPDIR
- $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.gz
+ $HTTP_FETCH
http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz
cd $BASEDIR
gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.cpp
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.cpp
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.cpp
Wed Nov 19 14:37:04 2014
@@ -418,7 +418,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
env->DeleteLocalRef(jfileName);
}
-void JNIUtil::handleSVNError(svn_error_t *err)
+void JNIUtil::wrappedHandleSVNError(svn_error_t *err)
{
std::string msg;
assembleErrorMessage(svn_error_purge_tracing(err), 0, APR_SUCCESS, msg);
@@ -546,7 +546,16 @@ void JNIUtil::handleSVNError(svn_error_t
#endif
env->Throw(static_cast<jthrowable>(env->PopLocalFrame(nativeException)));
+}
+void JNIUtil::handleSVNError(svn_error_t *err)
+{
+ try {
+ wrappedHandleSVNError(err);
+ } catch (...) {
+ svn_error_clear(err);
+ throw;
+ }
svn_error_clear(err);
}
@@ -646,28 +655,42 @@ bool JNIUtil::isJavaExceptionThrown()
const char *
JNIUtil::thrownExceptionToCString(SVN::Pool &in_pool)
{
- const char *msg;
+ const char *msg = NULL;
JNIEnv *env = getEnv();
+ apr_pool_t *pool = in_pool.getPool();
if (env->ExceptionCheck())
{
jthrowable t = env->ExceptionOccurred();
- static jmethodID getMessage = 0;
- if (getMessage == 0)
+ jclass cls = env->GetObjectClass(t);
+
+ jstring jclass_name;
+ {
+ jmethodID mid = env->GetMethodID(cls, "getClass",
"()Ljava/lang/Class;");
+ jobject clsobj = env->CallObjectMethod(t, mid);
+ jclass basecls = env->GetObjectClass(clsobj);
+ mid = env->GetMethodID(basecls, "getName", "()Ljava/lang/String;");
+ jclass_name = (jstring) env->CallObjectMethod(clsobj, mid);
+ }
+
+ jstring jmessage;
+ {
+ jmethodID mid = env->GetMethodID(cls, "getMessage",
+ "()Ljava/lang/String;");
+ jmessage = (jstring) env->CallObjectMethod(t, mid);
+ }
+
+ JNIStringHolder class_name(jclass_name);
+ if (jmessage)
{
- jclass clazz = env->FindClass("java/lang/Throwable");
- getMessage = env->GetMethodID(clazz, "getMessage",
- "(V)Ljava/lang/String;");
- env->DeleteLocalRef(clazz);
+ JNIStringHolder message(jmessage);
+ msg = apr_pstrcat(pool,
+ static_cast<const char*>(class_name), ": ",
+ static_cast<const char*>(message), NULL);
}
- jstring jmsg = (jstring) env->CallObjectMethod(t, getMessage);
- JNIStringHolder tmp(jmsg);
- msg = tmp.pstrdup(in_pool.getPool());
+ else
+ msg = class_name.pstrdup(pool);
// ### Conditionally add t.printStackTrace() to msg?
}
- else
- {
- msg = NULL;
- }
return msg;
}
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.h?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.h
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/bindings/javahl/native/JNIUtil.h
Wed Nov 19 14:37:04 2014
@@ -141,6 +141,7 @@ class JNIUtil
enum { noLog, errorLog, exceptionLog, entryLog } LogLevel;
private:
+ static void wrappedHandleSVNError(svn_error_t *err);
static void assembleErrorMessage(svn_error_t *err, int depth,
apr_status_t parent_apr_err,
std::string &buffer);
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/python/tests/client.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/swig/python/tests/client.py?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/python/tests/client.py
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/python/tests/client.py
Wed Nov 19 14:37:04 2014
@@ -437,6 +437,68 @@ class SubversionClientTestCase(unittest.
self.proplist_receiver_dir1, self.client_ctx)
self.assertEquals(self.proplist_receiver_dir1_calls, 1)
+ def test_update4(self):
+ """Test update and the notify function callbacks"""
+
+ rev = core.svn_opt_revision_t()
+ rev.kind = core.svn_opt_revision_number
+ rev.value.number = 0
+
+ path = self.temper.alloc_empty_dir('-update')
+
+ self.assertRaises(ValueError, client.checkout2,
+ self.repos_uri, path, None, None, True, True,
+ self.client_ctx)
+
+ client.checkout2(self.repos_uri, path, rev, rev, True, True,
+ self.client_ctx)
+
+ def notify_func(path, action, kind, mime_type, content_state, prop_state,
rev):
+ self.notified_paths.append(path)
+
+ self.client_ctx.notify_func = client.svn_swig_py_notify_func
+ self.client_ctx.notify_baton = notify_func
+ rev.value.number = 1
+ self.notified_paths = []
+ client.update4((path,), rev, core.svn_depth_unknown, True, False, False,
+ False, False, self.client_ctx)
+ expected_paths = [
+ path,
+ os.path.join(path, 'branches'),
+ os.path.join(path, 'tags'),
+ os.path.join(path, 'trunk'),
+ path,
+ path
+ ]
+ # All normal subversion apis process paths in Subversion's canonical
format,
+ # which isn't the platform specific format
+ expected_paths = [x.replace(os.path.sep, '/') for x in expected_paths]
+ self.notified_paths.sort()
+ expected_paths.sort()
+
+ self.assertEquals(self.notified_paths, expected_paths)
+
+ def notify_func2(notify, pool):
+ self.notified_paths.append(notify.path)
+
+ self.client_ctx.notify_func2 = client.svn_swig_py_notify_func2
+ self.client_ctx.notify_baton2 = notify_func2
+ rev.value.number = 2
+ self.notified_paths = []
+ expected_paths = [
+ path,
+ os.path.join(path, 'trunk', 'README.txt'),
+ os.path.join(path, 'trunk'),
+ path,
+ path
+ ]
+ expected_paths = [x.replace(os.path.sep, '/') for x in expected_paths]
+ client.update4((path,), rev, core.svn_depth_unknown, True, False, False,
+ False, False, self.client_ctx)
+ self.notified_paths.sort()
+ expected_paths.sort()
+ self.assertEquals(self.notified_paths, expected_paths)
+
def suite():
return unittest.defaultTestLoader.loadTestsFromTestCase(
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
Wed Nov 19 14:37:04 2014
@@ -1192,6 +1192,7 @@ DEFINE_DUP(auth_ssl_server_cert_info)
DEFINE_DUP(wc_entry)
DEFINE_DUP(client_diff_summarize)
DEFINE_DUP(dirent)
+DEFINE_DUP(log_entry)
DEFINE_DUP_NO_CONVENIENCE(client_commit_item3)
DEFINE_DUP_NO_CONVENIENCE(client_proplist_item)
DEFINE_DUP_NO_CONVENIENCE(wc_external_item2)
@@ -2155,9 +2156,7 @@ svn_swig_rb_log_entry_receiver(void *bat
cbb.receiver = proc;
cbb.message = id_call;
- cbb.args = rb_ary_new3(1,
- c2r_swig_type((void *)entry,
- (void *)"svn_log_entry_t *"));
+ cbb.args = rb_ary_new3(1, c2r_log_entry__dup(entry));
invoke_callback_handle_error((VALUE)(&cbb), rb_pool, &err);
}
return err;
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/test/test_client.rb
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/test/test_client.rb?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/test/test_client.rb
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/ruby/test/test_client.rb
Wed Nov 19 14:37:04 2014
@@ -2262,7 +2262,6 @@ class SvnClientTest < Test::Unit::TestCa
end
end
config = Svn::Core::Config.config(@config_path)
- assert_nil(ctx.config)
assert_equal(options, config[Svn::Core::CONFIG_CATEGORY_SERVERS].to_hash)
ctx.config = config
assert_equal(options,
Modified:
subversion/branches/1.8.x-r1536854/subversion/bindings/swig/svn_client.i
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/bindings/swig/svn_client.i?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/bindings/swig/svn_client.i
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/bindings/swig/svn_client.i
Wed Nov 19 14:37:04 2014
@@ -385,7 +385,8 @@ Callback: svn_client_diff_summarize_func
/* provide Python with access to some thunks. */
%constant svn_cancel_func_t svn_swig_py_cancel_func;
%constant svn_client_get_commit_log3_t svn_swig_py_get_commit_log_func;
-%constant svn_wc_notify_func2_t svn_swig_py_notify_func;
+%constant svn_wc_notify_func_t svn_swig_py_notify_func;
+%constant svn_wc_notify_func2_t svn_swig_py_notify_func2;
#endif
@@ -395,7 +396,13 @@ Callback: svn_client_diff_summarize_func
svn_client_ctx_t(apr_pool_t *pool) {
svn_error_t *err;
svn_client_ctx_t *self;
- err = svn_client_create_context(&self, pool);
+ apr_hash_t *cfg_hash;
+
+ err = svn_config_get_config(&cfg_hash, NULL, pool);
+ if (err)
+ svn_swig_rb_handle_svn_error(err);
+
+ err = svn_client_create_context2(&self, cfg_hash, pool);
if (err)
svn_swig_rb_handle_svn_error(err);
return self;
@@ -512,7 +519,13 @@ svn_client_set_config(svn_client_ctx_t *
apr_hash_t *config,
apr_pool_t *pool)
{
- ctx->config = config;
+ svn_error_t *err;
+
+ apr_hash_clear(ctx->config);
+ err = svn_config_copy_config(&ctx->config, config,
+ apr_hash_pool_get(ctx->config));
+ if (err)
+ svn_swig_rb_handle_svn_error(err);
return Qnil;
}
Modified:
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cache.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cache.h?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cache.h
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/include/private/svn_cache.h
Wed Nov 19 14:37:04 2014
@@ -182,6 +182,10 @@ typedef struct svn_cache__info_t
* if they are strings. Cached values will be copied in and out of
* the cache using @a serialize_func and @a deserialize_func, respectively.
*
+ * If @a deserialize_func is NULL, then the data is returned as an
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
+ * assumed to be an svn_stringbuf_t.
+ *
* The cache stores up to @a pages * @a items_per_page items at a
* time. The exact cache invalidation strategy is not defined here,
* but in general, a lower value for @a items_per_page means more
@@ -224,7 +228,7 @@ svn_cache__create_inprocess(svn_cache__t
* other caches. @a *cache_p will be allocated in @a result_pool.
*
* If @a deserialize_func is NULL, then the data is returned as an
- * svn_string_t; if @a serialize_func is NULL, then the data is
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
* assumed to be an svn_stringbuf_t.
*
* These caches are always thread safe.
@@ -309,7 +313,7 @@ svn_cache__membuffer_cache_create(svn_me
* this cache from other caches. @a *cache_p will be allocated in @a
result_pool.
*
* If @a deserialize_func is NULL, then the data is returned as an
- * svn_string_t; if @a serialize_func is NULL, then the data is
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
* assumed to be an svn_stringbuf_t.
*
* If @a thread_safe is true, and APR is compiled with threads, all
Modified:
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_dep_compat.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/include/private/svn_dep_compat.h?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
---
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_dep_compat.h
(original)
+++
subversion/branches/1.8.x-r1536854/subversion/include/private/svn_dep_compat.h
Wed Nov 19 14:37:04 2014
@@ -78,6 +78,7 @@ void svn_hash__clear(struct apr_hash_t *
#if !APR_VERSION_AT_LEAST(1,0,0)
#define APR_UINT64_C(val) UINT64_C(val)
#define APR_FPROT_OS_DEFAULT APR_OS_DEFAULT
+#define apr_hash_make_custom(pool,hash_func) apr_hash_make(pool)
#endif
#if !APR_VERSION_AT_LEAST(1,3,0)
@@ -114,6 +115,12 @@ typedef apr_uint32_t apr_uintptr_t;
#define SVN_LOCK_IS_BUSY(x) APR_STATUS_IS_EBUSY(x)
#endif
+#if !APR_VERSION_AT_LEAST(1,4,0)
+#ifndef apr_time_from_msec
+#define apr_time_from_msec(msec) ((apr_time_t)(msec) * 1000)
+#endif
+#endif
+
/**
* Check at compile time if the Serf version is at least a certain
* level.
Modified: subversion/branches/1.8.x-r1536854/subversion/include/svn_io.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/include/svn_io.h?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/include/svn_io.h (original)
+++ subversion/branches/1.8.x-r1536854/subversion/include/svn_io.h Wed Nov 19
14:37:04 2014
@@ -1148,6 +1148,8 @@ svn_stream_read(svn_stream_t *stream,
* of reads or a simple seek operation. If the stream implementation has
* not provided a skip function, this will read from the stream and
* discard the data.
+ *
+ * @since New in 1.7.
*/
svn_error_t *
svn_stream_skip(svn_stream_t *stream,
Modified: subversion/branches/1.8.x-r1536854/subversion/include/svn_version.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/include/svn_version.h?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/include/svn_version.h
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/include/svn_version.h Wed Nov
19 14:37:04 2014
@@ -72,7 +72,7 @@ extern "C" {
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 9
+#define SVN_VER_PATCH 11
/** @deprecated Provided for backward compatibility with the 1.0 API. */
Modified:
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/commit_util.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/commit_util.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/commit_util.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/commit_util.c
Wed Nov 19 14:37:04 2014
@@ -892,7 +892,7 @@ harvest_status_callback(void *status_bat
if (matches_changelists
&& (is_harvest_root || baton->changelists)
&& state_flags
- && is_added
+ && (is_added || (is_deleted && is_op_root && status->copied))
&& baton->danglers)
{
/* If a node is added, its parent must exist in the repository at the
@@ -966,17 +966,19 @@ struct handle_descendants_baton
void *cancel_baton;
svn_client__check_url_kind_t check_url_func;
void *check_url_baton;
+ svn_client__committables_t *committables;
};
/* Helper for the commit harvesters */
static svn_error_t *
handle_descendants(void *baton,
- const void *key, apr_ssize_t klen, void *val,
- apr_pool_t *pool)
+ const void *key, apr_ssize_t klen, void *val,
+ apr_pool_t *pool)
{
struct handle_descendants_baton *hdb = baton;
apr_array_header_t *commit_items = val;
apr_pool_t *iterpool = svn_pool_create(pool);
+ const char *repos_root_url = key;
int i;
for (i = 0; i < commit_items->nelts; i++)
@@ -1002,32 +1004,64 @@ handle_descendants(void *baton,
for (j = 0; j < absent_descendants->nelts; j++)
{
- int k;
- svn_boolean_t found_item = FALSE;
svn_node_kind_t kind;
+ svn_client_commit_item3_t *desc_item;
const char *relpath = APR_ARRAY_IDX(absent_descendants, j,
const char *);
const char *local_abspath = svn_dirent_join(item->path, relpath,
iterpool);
- /* If the path has a commit operation, we do nothing.
- (It will be deleted by the operation) */
- for (k = 0; k < commit_items->nelts; k++)
+ /* ### Need a sub-iterpool? */
+
+
+ /* We found a 'not present' descendant during a copy (at op_depth>0),
+ this is most commonly caused by copying some mixed revision tree.
+
+ In this case not present can imply that the node does not exist
+ in the parent revision, or that the node does. But we want to copy
+ the working copy state in which it does not exist, but might be
+ replaced. */
+
+ desc_item = svn_hash_gets(hdb->committables->by_path, local_abspath);
+
+ /* If the path has a commit operation (possibly at an higher
+ op_depth, we might want to turn an add in a replace. */
+ if (desc_item)
{
- svn_client_commit_item3_t *cmt_item =
- APR_ARRAY_IDX(commit_items, k, svn_client_commit_item3_t *);
+ const char *dir;
+ svn_boolean_t found_intermediate = FALSE;
+
+ if (desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+ continue; /* We already have a delete or replace */
+ else if (!(desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+ continue; /* Not a copy/add, just a modification */
- if (! strcmp(cmt_item->path, local_abspath))
+ dir = svn_dirent_dirname(local_abspath, iterpool);
+
+ while (strcmp(dir, item->path))
{
- found_item = TRUE;
- break;
+ svn_client_commit_item3_t *i_item;
+
+ i_item = svn_hash_gets(hdb->committables->by_path, dir);
+
+ if (i_item)
+ {
+ if ((i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+ || (i_item->state_flags &
SVN_CLIENT_COMMIT_ITEM_ADD))
+ {
+ found_intermediate = TRUE;
+ break;
+ }
+ }
+ dir = svn_dirent_dirname(dir, iterpool);
}
- }
- if (found_item)
- continue; /* We have an explicit delete or replace for this path */
+ if (found_intermediate)
+ continue; /* Some intermediate ancestor is an add or delete */
- /* ### Need a sub-iterpool? */
+ /* Fall through to detect if we need to turn the add in a
+ replace. */
+ }
if (hdb->check_url_func)
{
@@ -1045,25 +1079,35 @@ handle_descendants(void *baton,
else
kind = svn_node_unknown; /* 'Ok' for a delete of something */
- {
- /* Add a new commit item that describes the delete */
- apr_pool_t *result_pool = commit_items->pool;
- svn_client_commit_item3_t *new_item
- = svn_client_commit_item3_create(result_pool);
-
- new_item->path = svn_dirent_join(item->path, relpath,
- result_pool);
- new_item->kind = kind;
- new_item->url = svn_path_url_add_component2(item->url, relpath,
- result_pool);
- new_item->revision = SVN_INVALID_REVNUM;
- new_item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
- new_item->incoming_prop_changes = apr_array_make(result_pool, 1,
- sizeof(svn_prop_t *));
-
- APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *)
- = new_item;
- }
+ if (desc_item)
+ {
+ /* Extend the existing add/copy item to create a replace */
+ desc_item->state_flags |= SVN_CLIENT_COMMIT_ITEM_DELETE;
+ continue;
+ }
+
+ /* Add a new commit item that describes the delete */
+
+ SVN_ERR(add_committable(hdb->committables,
+ svn_dirent_join(item->path, relpath,
+ iterpool),
+ kind,
+ repos_root_url,
+ svn_uri_skip_ancestor(
+ repos_root_url,
+ svn_path_url_add_component2(item->url,
+ relpath,
+ iterpool),
+ iterpool),
+ SVN_INVALID_REVNUM,
+ NULL /* copyfrom_relpath */,
+ SVN_INVALID_REVNUM,
+ NULL /* moved_from_abspath */,
+ SVN_CLIENT_COMMIT_ITEM_DELETE,
+ NULL /* lock tokens */,
+ NULL /* lock */,
+ commit_items->pool,
+ iterpool));
}
}
@@ -1181,6 +1225,7 @@ svn_client__harvest_committables(svn_cli
hdb.cancel_baton = ctx->cancel_baton;
hdb.check_url_func = check_url_func;
hdb.check_url_baton = check_url_baton;
+ hdb.committables = *committables;
SVN_ERR(svn_iter_apr_hash(NULL, (*committables)->by_repository,
handle_descendants, &hdb, iterpool));
@@ -1274,6 +1319,7 @@ harvest_copy_committables(void *baton, v
hdb.cancel_baton = btn->ctx->cancel_baton;
hdb.check_url_func = btn->check_url_func;
hdb.check_url_baton = btn->check_url_baton;
+ hdb.committables = btn->committables;
SVN_ERR(svn_iter_apr_hash(NULL, btn->committables->by_repository,
handle_descendants, &hdb, pool));
Modified: subversion/branches/1.8.x-r1536854/subversion/libsvn_client/delete.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/delete.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/delete.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/delete.c Wed
Nov 19 14:37:04 2014
@@ -193,7 +193,7 @@ path_driver_cb_func(void **dir_baton,
static svn_error_t *
single_repos_delete(svn_ra_session_t *ra_session,
- const char *repos_root,
+ const char *base_uri,
const apr_array_header_t *relpaths,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
@@ -221,7 +221,7 @@ single_repos_delete(svn_ra_session_t *ra
const char *relpath = APR_ARRAY_IDX(relpaths, i, const char *);
item = svn_client_commit_item3_create(pool);
- item->url = svn_path_url_add_component2(repos_root, relpath, pool);
+ item->url = svn_path_url_add_component2(base_uri, relpath, pool);
item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *) = item;
}
@@ -361,7 +361,6 @@ delete_urls_multi_repos(const apr_array_
iterpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, deletables); hi; hi = apr_hash_next(hi))
{
- const char *repos_root = svn__apr_hash_index_key(hi);
struct repos_deletables_t *repos_deletables =
svn__apr_hash_index_val(hi);
const char *base_uri;
apr_array_header_t *target_relpaths;
@@ -398,7 +397,7 @@ delete_urls_multi_repos(const apr_array_
}
SVN_ERR(svn_ra_reparent(repos_deletables->ra_session, base_uri, pool));
- SVN_ERR(single_repos_delete(repos_deletables->ra_session, repos_root,
+ SVN_ERR(single_repos_delete(repos_deletables->ra_session, base_uri,
target_relpaths,
revprop_table, commit_callback,
commit_baton, ctx, iterpool));
Modified: subversion/branches/1.8.x-r1536854/subversion/libsvn_client/export.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/export.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/export.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/export.c Wed
Nov 19 14:37:04 2014
@@ -267,7 +267,9 @@ export_node(void *baton,
scratch_pool));
}
- if (status->file_external)
+ /* Skip file externals if they are a descendant of the export,
+ BUT NOT if we are explictly exporting the file external. */
+ if (status->file_external && strcmp(eib->origin_abspath, local_abspath) != 0)
return SVN_NO_ERROR;
/* Produce overwrite errors for the export root */
@@ -1587,3 +1589,4 @@ svn_client_export5(svn_revnum_t *result_
return SVN_NO_ERROR;
}
+
Modified:
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/externals.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/externals.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/externals.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/externals.c Wed
Nov 19 14:37:04 2014
@@ -1017,19 +1017,30 @@ svn_client__handle_externals(apr_hash_t
parent_abspath = svn_dirent_dirname(parent_abspath, iterpool);
SVN_ERR(svn_wc_read_kind2(&kind, ctx->wc_ctx, parent_abspath,
- TRUE, FALSE, iterpool));
+ FALSE /* show_deleted*/,
+ FALSE /* show_hidden */,
+ iterpool));
if (kind == svn_node_none)
{
svn_error_t *err;
err = svn_io_dir_remove_nonrecursive(parent_abspath, iterpool);
- if (err && APR_STATUS_IS_ENOTEMPTY(err->apr_err))
+ if (err)
{
- svn_error_clear(err);
- break;
+ if (APR_STATUS_IS_ENOTEMPTY(err->apr_err))
+ {
+ svn_error_clear(err);
+ break; /* No parents to delete */
+ }
+ else if (APR_STATUS_IS_ENOENT(err->apr_err)
+ || APR_STATUS_IS_ENOTDIR(err->apr_err))
+ {
+ svn_error_clear(err);
+ /* Fall through; parent dir might be unversioned */
+ }
+ else
+ return svn_error_trace(err);
}
- else
- SVN_ERR(err);
}
} while (strcmp(parent_abspath, defining_abspath) != 0);
}
Modified: subversion/branches/1.8.x-r1536854/subversion/libsvn_client/merge.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/merge.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/merge.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/merge.c Wed Nov
19 14:37:04 2014
@@ -322,6 +322,10 @@ typedef struct merge_cmd_baton_t {
const char *diff3_cmd;
const apr_array_header_t *merge_options;
+ /* Array of file extension patterns to preserve as extensions in
+ generated conflict files. */
+ const apr_array_header_t *ext_patterns;
+
/* RA sessions used throughout a merge operation. Opened/re-parented
as needed.
@@ -2023,17 +2027,36 @@ merge_file_changed(const char *relpath,
{
svn_boolean_t has_local_mods;
enum svn_wc_merge_outcome_t content_outcome;
+ const char *target_label;
+ const char *left_label;
+ const char *right_label;
+ const char *path_ext = "";
+
+ if (merge_b->ext_patterns && merge_b->ext_patterns->nelts)
+ {
+ svn_path_splitext(NULL, &path_ext, local_abspath, scratch_pool);
+ if (! (*path_ext
+ && svn_cstring_match_glob_list(path_ext,
+ merge_b->ext_patterns)))
+ {
+ path_ext = "";
+ }
+ }
/* xgettext: the '.working', '.merge-left.r%ld' and
'.merge-right.r%ld' strings are used to tag onto a file
name in case of a merge conflict */
- const char *target_label = _(".working");
- const char *left_label = apr_psprintf(scratch_pool,
- _(".merge-left.r%ld"),
- left_source->revision);
- const char *right_label = apr_psprintf(scratch_pool,
- _(".merge-right.r%ld"),
- right_source->revision);
+
+ target_label = apr_psprintf(scratch_pool, _(".working%s%s"),
+ *path_ext ? "." : "", path_ext);
+ left_label = apr_psprintf(scratch_pool,
+ _(".merge-left.r%ld%s%s"),
+ left_source->revision,
+ *path_ext ? "." : "", path_ext);
+ right_label = apr_psprintf(scratch_pool,
+ _(".merge-right.r%ld%s%s"),
+ right_source->revision,
+ *path_ext ? "." : "", path_ext);
SVN_ERR(svn_wc_text_modified_p2(&has_local_mods, ctx->wc_ctx,
local_abspath, FALSE, scratch_pool));
@@ -3062,7 +3085,6 @@ merge_dir_deleted(const char *relpath,
struct merge_dir_baton_t *db = dir_baton;
const char *local_abspath = svn_dirent_join(merge_b->target->abspath,
relpath, scratch_pool);
- struct dir_delete_baton_t *delb;
svn_boolean_t same;
apr_hash_t *working_props;
@@ -3093,66 +3115,69 @@ merge_dir_deleted(const char *relpath,
scratch_pool, scratch_pool));
if (merge_b->force_delete)
- same = TRUE;
+ {
+ /* In this legacy mode we just assume that a directory delete
+ matches any directory. db->delete_state is NULL */
+ same = TRUE;
+ }
else
{
+ struct dir_delete_baton_t *delb;
+
/* Compare the properties */
SVN_ERR(properties_same_p(&same, left_props, working_props,
scratch_pool));
- }
+ delb = db->delete_state;
+ assert(delb != NULL);
- delb = db->delete_state;
- assert(delb != NULL);
+ if (! same)
+ {
+ delb->found_edit = TRUE;
+ }
+ else
+ {
+ store_path(delb->compared_abspaths, local_abspath);
+ }
- if (! same)
- {
- delb->found_edit = TRUE;
- }
- else
- {
- store_path(delb->compared_abspaths, local_abspath);
- }
+ if (delb->del_root != db)
+ return SVN_NO_ERROR;
- if (delb->del_root != db)
- return SVN_NO_ERROR;
+ if (delb->found_edit)
+ same = FALSE;
+ else
+ {
+ apr_array_header_t *ignores;
+ svn_error_t *err;
+ same = TRUE;
- if (delb->found_edit)
- same = FALSE;
- else if (merge_b->force_delete)
- same = TRUE;
- else
- {
- apr_array_header_t *ignores;
- svn_error_t *err;
- same = TRUE;
+ SVN_ERR(svn_wc_get_default_ignores(&ignores, merge_b->ctx->config,
+ scratch_pool));
- SVN_ERR(svn_wc_get_default_ignores(&ignores, merge_b->ctx->config,
- scratch_pool));
+ /* None of the descendants was modified, but maybe there are
+ descendants we haven't walked?
- /* None of the descendants was modified, but maybe there are
- descendants we haven't walked?
+ Note that we aren't interested in changes, as we already verified
+ changes in the paths touched by the merge. And the existence of
+ other paths is enough to mark the directory edited */
+ err = svn_wc_walk_status(merge_b->ctx->wc_ctx, local_abspath,
+ svn_depth_infinity, TRUE /* get-all */,
+ FALSE /* no-ignore */,
+ TRUE /* ignore-text-mods */, ignores,
+ verify_touched_by_del_check, delb,
+ merge_b->ctx->cancel_func,
+ merge_b->ctx->cancel_baton,
+ scratch_pool);
- Note that we aren't interested in changes, as we already verified
- changes in the paths touched by the merge. And the existance of
- other paths is enough to mark the directory edited */
- err = svn_wc_walk_status(merge_b->ctx->wc_ctx, local_abspath,
- svn_depth_infinity, TRUE /* get-all */,
- FALSE /* no-ignore */,
- TRUE /* ignore-text-mods */, ignores,
- verify_touched_by_del_check, delb,
- merge_b->ctx->cancel_func,
- merge_b->ctx->cancel_baton,
- scratch_pool);
+ if (err)
+ {
+ if (err->apr_err != SVN_ERR_CEASE_INVOCATION)
+ return svn_error_trace(err);
- if (err)
- {
- if (err->apr_err != SVN_ERR_CEASE_INVOCATION)
- return svn_error_trace(err);
+ svn_error_clear(err);
+ }
- svn_error_clear(err);
+ same = ! delb->found_edit;
}
-
- same = ! delb->found_edit;
}
if (same && !merge_b->dry_run)
@@ -9668,6 +9693,7 @@ do_merge(apr_hash_t **modified_subtrees,
merge_cmd_baton_t merge_cmd_baton = { 0 };
svn_config_t *cfg;
const char *diff3_cmd;
+ const char *preserved_exts_str;
int i;
svn_boolean_t checked_mergeinfo_capability = FALSE;
svn_ra_session_t *ra_session1 = NULL, *ra_session2 = NULL;
@@ -9728,6 +9754,11 @@ do_merge(apr_hash_t **modified_subtrees,
if (diff3_cmd != NULL)
SVN_ERR(svn_path_cstring_to_utf8(&diff3_cmd, diff3_cmd, scratch_pool));
+ /* See which files the user wants to preserve the extension of when
+ conflict files are made. */
+ svn_config_get(cfg, &preserved_exts_str, SVN_CONFIG_SECTION_MISCELLANY,
+ SVN_CONFIG_OPTION_PRESERVED_CF_EXTS, "");
+
/* Build the merge context baton (or at least the parts of it that
don't need to be reset for each merge source). */
merge_cmd_baton.force_delete = force_delete;
@@ -9743,6 +9774,11 @@ do_merge(apr_hash_t **modified_subtrees,
merge_cmd_baton.pool = iterpool;
merge_cmd_baton.merge_options = merge_options;
merge_cmd_baton.diff3_cmd = diff3_cmd;
+ merge_cmd_baton.ext_patterns = *preserved_exts_str
+ ? svn_cstring_split(preserved_exts_str, "\n\r\t\v ",
+ FALSE, scratch_pool)
+ : NULL;
+
merge_cmd_baton.use_sleep = use_sleep;
/* Do we already know the specific subtrees with mergeinfo we want
@@ -10447,15 +10483,10 @@ merge_locked(conflict_report_t **conflic
}
else
{
- merge_source_t source;
-
- source.loc1 = source1_loc;
- source.loc2 = source2_loc;
- source.ancestral = FALSE;
-
/* Build a single-item merge_source_t array. */
merge_sources = apr_array_make(scratch_pool, 1, sizeof(merge_source_t
*));
- APR_ARRAY_PUSH(merge_sources, merge_source_t *) = &source;
+ APR_ARRAY_PUSH(merge_sources, merge_source_t *)
+ = merge_source_create(source1_loc, source2_loc, FALSE, scratch_pool);
}
err = do_merge(NULL, NULL, conflict_report, &use_sleep,
@@ -10761,7 +10792,7 @@ log_find_operative_revs(void *baton,
UNMERGED_CATALOG represents the history (as mergeinfo) from
TARGET_LOC that is not represented in SOURCE_LOC's
explicit/inherited mergeinfo as represented by MERGED_CATALOG.
- MERGEINFO_CATALOG may be empty if the source has no explicit or inherited
+ MERGED_CATALOG may be empty if the source has no explicit or inherited
mergeinfo.
Check that all of the unmerged revisions in UNMERGED_CATALOG's
@@ -11464,7 +11495,7 @@ find_reintegrate_merge(merge_source_t **
prefix. */
svn_mergeinfo_catalog_t final_unmerged_catalog =
apr_hash_make(scratch_pool);
- SVN_ERR(find_unsynced_ranges(source_loc, yc_ancestor,
+ SVN_ERR(find_unsynced_ranges(source_loc, &target->loc,
unmerged_to_source_mergeinfo_catalog,
merged_to_source_mergeinfo_catalog,
final_unmerged_catalog,
Modified:
subversion/branches/1.8.x-r1536854/subversion/libsvn_client/prop_commands.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1536854/subversion/libsvn_client/prop_commands.c?rev=1640562&r1=1640561&r2=1640562&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1536854/subversion/libsvn_client/prop_commands.c
(original)
+++ subversion/branches/1.8.x-r1536854/subversion/libsvn_client/prop_commands.c
Wed Nov 19 14:37:04 2014
@@ -890,8 +890,14 @@ svn_client_propget5(apr_hash_t **props,
const char *copy_root_abspath;
svn_boolean_t is_copy;
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, target,
- scratch_pool));
+ /* Avoid assertion on the next line when somebody accidentally asks
for
+ a working copy revision on a URL */
+ if (svn_path_is_url(target))
+ return svn_error_create(SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED,
+ NULL, NULL);
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(target));
+ local_abspath = target;
if (SVN_CLIENT__REVKIND_NEEDS_WC(peg_revision->kind))
{
@@ -1293,6 +1299,12 @@ get_remote_props(const char *path_or_url
const char *copy_root_abspath;
svn_boolean_t is_copy;
+ /* Avoid assertion on the next line when somebody accidentally asks for
+ a working copy revision on a URL */
+ if (svn_path_is_url(path_or_url))
+ return svn_error_create(SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED,
+ NULL, NULL);
+
SVN_ERR(svn_dirent_get_absolute(&local_abspath, path_or_url,
scratch_pool));