Author: brane
Date: Wed Jun 19 14:15:15 2013
New Revision: 1494635
URL: http://svn.apache.org/r1494635
Log:
On the javahl-1.8-extensions branch: Sync with 1.8.x up to r1494630.
Modified:
subversion/branches/javahl-1.8-extensions/ (props changed)
subversion/branches/javahl-1.8-extensions/CHANGES (contents, props
changed)
subversion/branches/javahl-1.8-extensions/STATUS
subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c
subversion/branches/javahl-1.8-extensions/subversion/svn/mergeinfo-cmd.c
subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/io-test.c
subversion/branches/javahl-1.8-extensions/tools/client-side/svn-bench/help-cmd.c
subversion/branches/javahl-1.8-extensions/tools/server-side/fsfs-stats.c
subversion/branches/javahl-1.8-extensions/win-tests.py
Propchange: subversion/branches/javahl-1.8-extensions/
------------------------------------------------------------------------------
Merged /subversion/branches/1.8.x:r1491753-1494630
Merged
/subversion/trunk:r1490679,1491499,1491770,1492005,1492145,1492164,1492295,1493951
Modified: subversion/branches/javahl-1.8-extensions/CHANGES
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/CHANGES?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/CHANGES (original)
+++ subversion/branches/javahl-1.8-extensions/CHANGES Wed Jun 19 14:15:15 2013
@@ -99,7 +99,6 @@ http://svn.apache.org/repos/asf/subversi
* support ipv6 in URLs (e.g. http://[::1]/svn/repos) (r1454047)
* conflict resolver now iterates paths in a sorted order (r1461820)
* mod_dav_svn does keyword expansion with 'kw=1' query arg (r1466055)
- * add support for custom keyword definitions (issue #890)
- Minor new features and improvements (server-side):
* improve performance of config file parsing (r1344347 et al)
Propchange: subversion/branches/javahl-1.8-extensions/CHANGES
------------------------------------------------------------------------------
Merged /subversion/branches/1.8.x/CHANGES:r1491753-1494630
Merged /subversion/trunk/CHANGES:r1491499
Modified: subversion/branches/javahl-1.8-extensions/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/STATUS?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/STATUS (original)
+++ subversion/branches/javahl-1.8-extensions/STATUS Wed Jun 19 14:15:15 2013
@@ -1,7 +1,6 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* THIS RELEASE STREAM IS OPEN TO BUG FIXES. *
- * THIS RELEASE STREAM IS OPEN TO API CHANGES. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -11,7 +10,7 @@ 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.0:
+Status of 1.8.1:
Candidate changes:
==================
@@ -51,14 +50,6 @@ Candidate changes:
Votes:
+0: rhuijben (Needs more work. Breaks JavaHL)
- * r1490679
- Allow test suite to run properly on Windows.
- Justification:
- Fixes a (very) minor test setup failure when running the ra_serf tests on
- Windows for the first time in a given environment.
- Votes:
- +1: pburba, rhuijben
-
* r1489339
Return 501/412 rather than 401 for lock errors.
Justification:
@@ -75,7 +66,7 @@ Candidate changes:
Justification:
Not a client failure so 4xx is wrong.
Votes:
- +1: philip
+ +1: philip, rhuijben
* r1491432
Rename 'automatic merge' to 'complete merge' in the merge help text.
@@ -89,6 +80,8 @@ Candidate changes:
versions will name the feature in different ways.
Votes:
+1: stsp
+ +1: danielsh (no opinion on the name of the feature; just confirming this
+ patch does what it claims to)
* r1491707
Add version header to svnpubsub server.
@@ -98,17 +91,137 @@ Candidate changes:
Votes:
+1: danielsh, breser
+ * r1491739, r1491755, r1491762, r1492152, r1492670, r1492682
+ Improve interactive conflict resolution menu.
+ Justification:
+ The current menu is too hard to figure out for users.
+ See http://svn.haxx.se/dev/archive-2013-06/0147.shtml
+ and http://blog.elegosoft.com/?q=updating-moves-in-subversion-18-just-ask
+ Votes:
+ +1: stsp
+
+ * r1491816, r1494089
+ Add two additional options to interactive file merge.
+ Justification:
+ Usability enhancement for quicker conflict resolution in some cases.
+ Very simple change. Only affects interactive mode, not scripts.
+ Votes:
+ +1: stsp, danielsh
+
+ * r1491868
+ Add missing conflict callback invocations to the update editor.
+ Justification:
+ Resolver is not invoked after some updates which flag new tree conflicts.
+ Votes:
+ +1: stsp
+ -0: rhuijben (Working on a further review to avoid a possible duplicate
+ callback call)
+
+ * r1478987, r1492020
+ Optimize some code that retrieves mergeinfo to obtain less unneeded
+ information from the repository.
+ Justification:
+ Simple fixes to improve performance.
+ Votes:
+ +1: rhuijben
+
+ * r1491756
+ Fix issue #4364: Correctly remove the stale entries from the lock table
+ when committing deletions.
+ Justification:
+ Keep wc.db as consistent and clean as possible.
+ Votes:
+ +1: rhuijben, stsp
+
+ * r1492148, r1493720
+ Don't try to use 'blame -r 5:1' against 1.7 servers. Affects only users
+ of the RA API, not users of the client API or svn.
+ Justification:
+ 1.7 servers would silently do the wrong thing.
+ Votes:
+ +1: danielsh, rhuijben
+
+ * r1493424
+ Remove unnecessary check for branches ancestry from
+ command line client. All required checks are already performed in
+ libsvn_client.
+ Justification:
+ There is no reason to command line and third-party use different
+ codepath for ancestory checks. Simple performance fix.
+ Votes:
+ +1: ivan, rhuijben
+ +0: danielsh (note: svn_client__youngest_common_ancestor can be striken;
+ no callers left)
+
+ * r1493475
+ Improve 'svn merge' performance over WAN: Use already fetched
+ history-as-mergeinfo data to find youngest common ancestor in automatic
+ merge.
+ Justification:
+ No reason to create an RA session or perform RA calls if the information
+ is already in memory.
+ Votes:
+ +1: rhuijben, ivan
+
+ * r1493703, r1494171
+ Fix upgrade notification for explicit upgrades of post-WC-NG working copies.
+ Justification:
+ Without this notification users can't see whether the upgrade was a no-op.
+ Votes:
+ +1: rhuijben, stsp
+
+ * r1494342
+ C tests: support --compatible-version=1.8.
+ Justification:
+ Enable running the tests with --compatible-version
+ Votes:
+ +1: danielsh
+
Veto-blocked changes:
=====================
-Approved for 1.8.1 or if soak is restarted for 1.8.0:
-====================================================
+ * r1493027, r1493028, r1493060
+ Make 'blame -r 5:4' work.
+ Justification:
+ Make it possible to track removed lines.
+ Notes:
+ r1493027 is the fix.
+ r1493028 is a typo fix.
+ r1493060 is a docstring change. If this group is merged, that docstring
+ should be amended to say "1.8.1" rather than "1.9.0" (this amendment
+ does not require votes).
+ Votes:
+ -1: danielsh (doesn't resolve peg revisions correctly)
Approved changes:
=================
-# 1.8.0-rc3 is being voted on currently and as such 1.8.0 is in the soak phase.
-# Changes that are not intended for 1.8.0 should not be placed here and changes
-# that would restart the soak should not be added unless they are resolving
-# blocking issues. If in doubt see this link for details:
-#
http://subversion.apache.org/docs/community-guide/releasing.html#release-stabilization
+ * r1494287
+ Fix a "div-by-0" error when upgrading unsharded format 3+ FSFS repositories.
+ Justification:
+ Even if the format supports sharding, the actual repo may be unsharded.
+ The upgrade code simply needs to check for that condition and skip revprop
+ catch-up packing in that case.
+ Votes:
+ +1: stefan2, danielsh, ivan, philip
+
+ * r1494298, r1494318
+ Fix a FSFS data loss when aborting 'svnadmin upgrade' late in the process.
+ Justification:
+ This is a critical issue. People may actually abort the potentially long-
+ running 'svnadmin upgrade'. If they do that after the actual packing
+ phase, they *will* lose data.
+ r1494318 is a follow-up that fixes a copy'n'pasto.
+ Notes:
+ Depends on r1494287 which must be merged first.
+ Votes:
+ +1: stefan2, danielsh, ivan
+
+ * r1494223
+ Forbid 'svnadmin create --fs-type=fsfs --compatible-version=1.0'.
+ Justification:
+ Well, I hope no one will actually run into this error in a situation
+ where it matters, but I'll sleep better knowing we're strict about
+ input validation.
+ Votes:
+ +1: danielsh, rhuijben, stsp
Modified:
subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
---
subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
(original)
+++
subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/ruby/test/util.rb
Wed Jun 19 14:15:15 2013
@@ -19,7 +19,41 @@
require "fileutils"
require "pathname"
-require "./svn/util"
+
+# Tale of a hack...
+#
+# Here we are, %SVN-WC-ROOT%/subversion/bindings/swig/ruby/test/util.rb,
+# trying to require %SVN-WC-ROOT%/subversion/bindings/swig/ruby/svn/util.rb,
+# all the while supporting both Ruby 1.8 and 1.9. Simply using this,
+#
+# require "svn/util"
+#
+# works for Ruby 1.8 if the CWD is subversion/bindings/swig/ruby
+# when we are running the tests, e.g.:
+#
+# %SVN-WC-ROOT%/subversion/bindings/swig/ruby>ruby test\run-test.rb
+#
+# This is because the CWD is included in the load path when Ruby 1.8
+# searches for required files. But this doesn't work for Ruby 1.9,
+# which doesn't include the CWD this way, so instead we could use this:
+#
+# require "./svn/util"
+#
+# But that only works if ./svn/util is relative to the CWD (again if the
+# CWD is %SVN-WC-ROOT%/subversion/bindings/swig/ruby). However, if we run
+# the tests from a different CWD and specify
+# %SVN-WC-ROOT%/subversion/bindings/swig/ruby as an additional $LOAD_PATH
+# using the ruby -I option, then that fails on both 1.8 and 1.9 with a
+# LoadError.
+#
+# The usual solution in a case like this is to use require_relative,
+#
+# require_relative "../svn/util"
+#
+# But that's only available in Ruby 1.9. We could require the backports gem
+# but there is a simple workaround, just calculate the full path of util:
+require File.join(File.dirname(__FILE__), '../svn/util')
+
require "tmpdir"
require "my-assertions"
Modified:
subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
(original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
Wed Jun 19 14:15:15 2013
@@ -72,7 +72,7 @@ extern "C" {
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 0
+#define SVN_VER_PATCH 1
/** @deprecated Provided for backward compatibility with the 1.0 API. */
Modified:
subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/fs_fs.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/fs_fs.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/fs_fs.c
(original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/fs_fs.c
Wed Jun 19 14:15:15 2013
@@ -3664,7 +3664,7 @@ parse_packed_revprops(svn_fs_t *fs,
svn_string_t *compressed
= svn_stringbuf__morph_into_string(revprops->packed_revprops);
svn_stringbuf_t *uncompressed = svn_stringbuf_create_empty(pool);
- SVN_ERR(svn__decompress(compressed, uncompressed, 0x1000000));
+ SVN_ERR(svn__decompress(compressed, uncompressed, APR_SIZE_MAX));
/* read first revision number and number of revisions in the pack */
stream = svn_stream_from_stringbuf(uncompressed, scratch_pool);
Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c
(original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/io.c Wed
Jun 19 14:15:15 2013
@@ -3533,6 +3533,9 @@ svn_io_read_length_line(apr_file_t *file
apr_size_t bytes_read = 0;
char *eol;
+ if (to_read == 0)
+ break;
+
/* read data block (or just a part of it) */
SVN_ERR(svn_io_file_read_full2(file, buf, to_read,
&bytes_read, &eof, pool));
Modified:
subversion/branches/javahl-1.8-extensions/subversion/svn/mergeinfo-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/svn/mergeinfo-cmd.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/svn/mergeinfo-cmd.c
(original)
+++ subversion/branches/javahl-1.8-extensions/subversion/svn/mergeinfo-cmd.c
Wed Jun 19 14:15:15 2013
@@ -311,22 +311,32 @@ svn_cl__mergeinfo(apr_getopt_t *os,
/* Do the real work, depending on the requested data flavor. */
if (opt_state->show_revs == svn_cl__show_revs_merged)
{
+ apr_array_header_t *revprops;
+
+ /* We need only revisions number, not revision properties. */
+ revprops = apr_array_make(pool, 0, sizeof(const char *));
+
SVN_ERR(svn_client_mergeinfo_log2(TRUE, target, &tgt_peg_revision,
source, &src_peg_revision,
src_start_revision,
src_end_revision,
print_log_rev, NULL,
- TRUE, depth, NULL, ctx,
+ TRUE, depth, revprops, ctx,
pool));
}
else if (opt_state->show_revs == svn_cl__show_revs_eligible)
{
+ apr_array_header_t *revprops;
+
+ /* We need only revisions number, not revision properties. */
+ revprops = apr_array_make(pool, 0, sizeof(const char *));
+
SVN_ERR(svn_client_mergeinfo_log2(FALSE, target, &tgt_peg_revision,
source, &src_peg_revision,
src_start_revision,
src_end_revision,
print_log_rev, NULL,
- TRUE, depth, NULL, ctx,
+ TRUE, depth, revprops, ctx,
pool));
}
else
Modified:
subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/io-test.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/io-test.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
---
subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/io-test.c
(original)
+++
subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/io-test.c
Wed Jun 19 14:15:15 2013
@@ -481,6 +481,31 @@ test_three_file_content_comparison(apr_p
return err;
}
+static svn_error_t *
+read_length_line_shouldnt_loop(apr_pool_t *pool)
+{
+ const char *tmp_dir;
+ const char *tmp_file;
+ char buffer[4];
+ apr_size_t buffer_limit = sizeof(buffer);
+ apr_file_t *f;
+
+ SVN_ERR(svn_dirent_get_absolute(&tmp_dir, "read_length_tmp", pool));
+ SVN_ERR(svn_io_remove_dir2(tmp_dir, TRUE, NULL, NULL, pool));
+ SVN_ERR(svn_io_make_dir_recursively(tmp_dir, pool));
+ svn_test_add_dir_cleanup(tmp_dir);
+
+ SVN_ERR(svn_io_write_unique(&tmp_file, tmp_dir, "1234\r\n", 6,
+ svn_io_file_del_on_pool_cleanup, pool));
+
+ SVN_ERR(svn_io_file_open(&f, tmp_file, APR_READ, APR_OS_DEFAULT, pool));
+
+ SVN_TEST_ASSERT_ERROR(svn_io_read_length_line(f, buffer, &buffer_limit,
+ pool), SVN_ERR_MALFORMED_FILE);
+ SVN_TEST_ASSERT(buffer_limit == 4);
+
+ return SVN_NO_ERROR;
+}
/* The test table. */
@@ -496,5 +521,7 @@ struct svn_test_descriptor_t test_funcs[
"three file size comparison"),
SVN_TEST_PASS2(test_three_file_content_comparison,
"three file content comparison"),
+ SVN_TEST_PASS2(read_length_line_shouldnt_loop,
+ "svn_io_read_length_line() shouldn't loop"),
SVN_TEST_NULL
};
Modified:
subversion/branches/javahl-1.8-extensions/tools/client-side/svn-bench/help-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/tools/client-side/svn-bench/help-cmd.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
---
subversion/branches/javahl-1.8-extensions/tools/client-side/svn-bench/help-cmd.c
(original)
+++
subversion/branches/javahl-1.8-extensions/tools/client-side/svn-bench/help-cmd.c
Wed Jun 19 14:15:15 2013
@@ -80,7 +80,7 @@ svn_cl__help(apr_getopt_t *os,
SVN_ERR(svn_ra_print_modules(version_footer, pool));
return svn_opt_print_help4(os,
- "svn", /* ### erm, derive somehow? */
+ "svn-bench", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
opt_state ? opt_state->verbose : FALSE,
Modified:
subversion/branches/javahl-1.8-extensions/tools/server-side/fsfs-stats.c
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/tools/server-side/fsfs-stats.c?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/tools/server-side/fsfs-stats.c
(original)
+++ subversion/branches/javahl-1.8-extensions/tools/server-side/fsfs-stats.c
Wed Jun 19 14:15:15 2013
@@ -2169,13 +2169,13 @@ int main(int argc, const char *argv[])
svn_err = read_revisions(&fs, repo_path, start_revision, memsize, pool);
printf("\n");
- print_stats(fs, pool);
-
if (svn_err)
{
svn_handle_error2(svn_err, stdout, FALSE, ERROR_TAG);
return 2;
}
+ print_stats(fs, pool);
+
return 0;
}
Modified: subversion/branches/javahl-1.8-extensions/win-tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/win-tests.py?rev=1494635&r1=1494634&r2=1494635&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/win-tests.py (original)
+++ subversion/branches/javahl-1.8-extensions/win-tests.py Wed Jun 19 14:15:15
2013
@@ -600,6 +600,12 @@ class Httpd:
def _create_dontdothat_file(self):
"Create empty mime.types file"
+ # If the tests have not previously been run or were cleaned
+ # up, then 'svn-test-work' does not exist yet.
+ parent_dir = os.path.dirname(self.dontdothat_file)
+ if not os.path.exists(parent_dir):
+ os.makedirs(parent_dir)
+
fp = open(self.dontdothat_file, 'w')
fp.write('[recursive-actions]\n')
fp.write('/ = deny\n')