svn commit: r1908751 - in /subversion/trunk: subversion/libsvn_repos/load-fs-vtable.c subversion/libsvn_repos/reporter.c tools/dev/hash-test.c
Author: philip Date: Mon Mar 27 18:41:36 2023 New Revision: 1908751 URL: http://svn.apache.org/viewvc?rev=1908751=rev Log: There are some places where we use svn_revnum_t as keys in an apr_hash_t and it turns out that APR's default hash function doesn't work very well in this case. For the load revmap hash it is possible for over 96% of the revnums added to the hash to be in hash collision chains, meaning that most hash lookups will degrade to a linked list scan. Subversion has an alternative hash function, available via svn_hash__make(), that works much better in this case, so use it. * subversion/libsvn_repos/load-fs-vtable.c (struct parse_baton): Add comment. (svn_repos_get_fs_build_parser6): Use svn_hash__make. * subversion/libsvn_repos/reporter.c (struct report_baton_t): Add comment. (svn_repos_begin_report3): Use svn_hash__make. * tools/dev/hash-test.c: New. Added: subversion/trunk/tools/dev/hash-test.c (with props) Modified: subversion/trunk/subversion/libsvn_repos/load-fs-vtable.c subversion/trunk/subversion/libsvn_repos/reporter.c Modified: subversion/trunk/subversion/libsvn_repos/load-fs-vtable.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/load-fs-vtable.c?rev=1908751=1908750=1908751=diff == --- subversion/trunk/subversion/libsvn_repos/load-fs-vtable.c (original) +++ subversion/trunk/subversion/libsvn_repos/load-fs-vtable.c Mon Mar 27 18:41:36 2023 @@ -42,6 +42,7 @@ #include "private/svn_dep_compat.h" #include "private/svn_mergeinfo_private.h" #include "private/svn_repos_private.h" +#include "private/svn_subr_private.h" /*--*/ @@ -77,6 +78,8 @@ struct parse_baton contents are allocated in POOL. */ /* ### See https://issues.apache.org/jira/browse/SVN-3903 ### for discussion about improving the memory costs of this mapping. */ + /* Using svn_revnum_t as a key can interact badly with APR's default hash + see tools/dev/hash-test.c. Use svn_hash__make to get a suitable hash. */ apr_hash_t *rev_map; /* The most recent (youngest) revision from the dump stream mapped in @@ -1255,7 +1258,7 @@ svn_repos_get_fs_build_parser6(const svn pb->parent_dir = parent_dir; pb->pool = pool; pb->notify_pool = svn_pool_create(pool); - pb->rev_map = apr_hash_make(pool); + pb->rev_map = svn_hash__make(pool); pb->oldest_dumpstream_rev = SVN_INVALID_REVNUM; pb->last_rev_mapped = SVN_INVALID_REVNUM; pb->start_rev = start_rev; Modified: subversion/trunk/subversion/libsvn_repos/reporter.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/reporter.c?rev=1908751=1908750=1908751=diff == --- subversion/trunk/subversion/libsvn_repos/reporter.c (original) +++ subversion/trunk/subversion/libsvn_repos/reporter.c Mon Mar 27 18:41:36 2023 @@ -138,7 +138,8 @@ typedef struct report_baton_t svn_fs_root_t *s_roots[NUM_CACHED_SOURCE_ROOTS]; /* Cache for revision properties. This is used to eliminate redundant - revprop fetching. */ + revprop fetching. svn_revnum_t keys so use svn_hash__make to get a + suitable hash function. */ apr_hash_t *revision_infos; /* This will not change. So, fetch it once and reuse it. */ @@ -1628,7 +1629,7 @@ svn_repos_begin_report3(void **report_ba b->edit_baton = edit_baton; b->authz_read_func = authz_read_func; b->authz_read_baton = authz_read_baton; - b->revision_infos = apr_hash_make(pool); + b->revision_infos = svn_hash__make(pool); b->pool = pool; b->reader = svn_spillbuf__reader_create(1000 /* blocksize */, 100 /* maxsize */, Added: subversion/trunk/tools/dev/hash-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dev/hash-test.c?rev=1908751=auto == --- subversion/trunk/tools/dev/hash-test.c (added) +++ subversion/trunk/tools/dev/hash-test.c Mon Mar 27 18:41:36 2023 @@ -0,0 +1,192 @@ +/* + * + *Licensed to the Apache Software Foundation (ASF) under one + *or more contributor license agreements. See the NOTICE file + *distributed with this work for additional information + *regarding copyright ownership. The ASF licenses this file + *to you under the Apache License, Version 2.0 (the + *"License"); you may not use this file except in compliance + *with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + *Unless required by applicable law or agreed to in writing, + *software distributed under the License
svn commit: r1908721 - in /subversion/trunk: Makefile.in configure.ac
Author: philip Date: Sun Mar 26 02:23:00 2023 New Revision: 1908721 URL: http://svn.apache.org/viewvc?rev=1908721=rev Log: Ensure libsvn_fs_x_LDFLAGS ends up in the Makefile so that flags such as -Wl,--no-undefined can be passed to the FSX library just as they are for the other Subversion libraries. The configure script was already setting libsvn_fs_x_LDFLAGS but it was not propagated to the Makefile. * Makefile.in: Add libsvn_fs_x_LDFLAGS. * configure.ac: Substitute libsvn_fs_x_LDFLAGS. Modified: subversion/trunk/Makefile.in subversion/trunk/configure.ac Modified: subversion/trunk/Makefile.in URL: http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1908721=1908720=1908721=diff == --- subversion/trunk/Makefile.in (original) +++ subversion/trunk/Makefile.in Sun Mar 26 02:23:00 2023 @@ -288,6 +288,7 @@ libsvn_diff_LDFLAGS = @libsvn_diff_LDFLA libsvn_fs_LDFLAGS = @libsvn_fs_LDFLAGS@ libsvn_fs_base_LDFLAGS = @libsvn_fs_base_LDFLAGS@ libsvn_fs_fs_LDFLAGS = @libsvn_fs_fs_LDFLAGS@ +libsvn_fs_x_LDFLAGS = @libsvn_fs_x_LDFLAGS@ libsvn_fs_util_LDFLAGS = @libsvn_fs_util_LDFLAGS@ libsvn_ra_LDFLAGS = @libsvn_ra_LDFLAGS@ libsvn_ra_local_LDFLAGS = @libsvn_ra_local_LDFLAGS@ Modified: subversion/trunk/configure.ac URL: http://svn.apache.org/viewvc/subversion/trunk/configure.ac?rev=1908721=1908720=1908721=diff == --- subversion/trunk/configure.ac (original) +++ subversion/trunk/configure.ac Sun Mar 26 02:23:00 2023 @@ -1028,6 +1028,7 @@ AC_SUBST([libsvn_diff_LDFLAGS]) AC_SUBST([libsvn_fs_LDFLAGS]) AC_SUBST([libsvn_fs_base_LDFLAGS]) AC_SUBST([libsvn_fs_fs_LDFLAGS]) +AC_SUBST([libsvn_fs_x_LDFLAGS]) AC_SUBST([libsvn_fs_util_LDFLAGS]) AC_SUBST([libsvn_ra_LDFLAGS]) AC_SUBST([libsvn_ra_local_LDFLAGS])
svn commit: r1908595 - in /subversion/trunk/subversion: libsvn_fs_fs/tree.c libsvn_fs_x/tree.c tests/libsvn_fs/fs-test.c
Author: philip Date: Mon Mar 20 19:13:28 2023 New Revision: 1908595 URL: http://svn.apache.org/viewvc?rev=1908595=rev Log: Reduce spurious conflicts during commit. Two txns that are not meant to conflict, a file content change and a directory property change, can generate a spurious conflict when the txns are built in parallel. When doing this from a working copy, simply retrying the commit would allow it to complete, no update was necessary, indicating that the commit was spurious. Spurious conflicts are still possible, but are now less likely. * subversion/libsvn_fs_fs/tree.c (merge): Handle ancestor directory property change. * subversion/libsvn_fs_x/tree.c (merge): Handle ancestor directory property change. * subversion/tests/libsvn_fs/fs-test.c (unordered_txn_dirprops, dir_prop_merge): Now only fails on BDB. Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c subversion/trunk/subversion/libsvn_fs_x/tree.c subversion/trunk/subversion/tests/libsvn_fs/fs-test.c Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1908595=1908594=1908595=diff == --- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Mon Mar 20 19:13:28 2023 @@ -1977,7 +1977,30 @@ merge(svn_stringbuf_t *conflict_p, different contents. */ SVN_ERR(svn_fs_fs__prop_rep_equal(, fs, src_nr, anc_nr, pool)); if (! same) - return conflict_err(conflict_p, target_path); + { +apr_hash_t *proplist; + +/* There is a prop difference between source and ancestor, if + there is no property difference between target and ancestor + then this txn didn't change props and we can simply update + target to match source. + + Commit calls merge in a loop until it manages to get the + write lock with source=head. Copying the properties like + this will only work on the first iteration as later + iterations will see tgt.prop!=anc.prop and won't know that + the txn did not change properties. This means we + successfully handle a race between this txn and a + propchange txn while building this txn, but we don't handle + a race that occurs after the first iteration of the merge + loop -- we will raise an unwanted conflict. */ +SVN_ERR(svn_fs_fs__prop_rep_equal(, fs, tgt_nr, anc_nr, pool)); +if (! same) + return conflict_err(conflict_p, target_path); + +SVN_ERR(svn_fs_fs__dag_get_proplist(, source, pool)); +SVN_ERR(svn_fs_fs__dag_set_proplist(target, proplist, pool)); + } /* The directory entries got changed in the repository but the directory properties did not. */ Modified: subversion/trunk/subversion/libsvn_fs_x/tree.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/tree.c?rev=1908595=1908594=1908595=diff == --- subversion/trunk/subversion/libsvn_fs_x/tree.c (original) +++ subversion/trunk/subversion/libsvn_fs_x/tree.c Mon Mar 20 19:13:28 2023 @@ -890,7 +890,32 @@ merge(svn_stringbuf_t *conflict_p, different contents. */ SVN_ERR(svn_fs_x__prop_rep_equal(, fs, src_nr, anc_nr, TRUE, pool)); if (! same) - return conflict_err(conflict_p, target_path); + { +apr_hash_t *proplist; + +/* There is a prop difference between source and ancestor, if + there is no property difference between target and ancestor + then this txn didn't change props and we can simply update + target to match source. + + Commit calls merge in a loop until it manages to get the + write lock with source=head. Copying the properties like + this will only work on the first iteration as later + iterations will see tgt.prop!=anc.prop and won't know that + the txn did not change properties. This means we + successfully handle a race between this txn and a + propchange txn while building this txn, but we don't handle + a race that occurs after the first iteration of the merge + loop -- we will raise an unwanted conflict. */ +SVN_ERR(svn_fs_x__prop_rep_equal(, fs, tgt_nr, anc_nr, + TRUE, pool)); +if (! same) + return conflict_err(conflict_p, target_path); + +SVN_ERR(svn_fs_x__dag_get_proplist(, source, pool, pool)); +SVN_ERR(svn_fs_x__dag_set_proplist(target, proplist, pool)); + } + /* The directory entries got changed in the repository but the directory properties did not. */ Modified: subversion/trunk/subversion/tests/libsvn_fs/fs-test.c URL: http://svn.apache.org
svn commit: r1908547 - /subversion/trunk/subversion/svnserve/svnserve.c
Author: philip Date: Mon Mar 20 01:27:41 2023 New Revision: 1908547 URL: http://svn.apache.org/viewvc?rev=1908547=rev Log: Add SIGTERM/SIGINT handling to svnserve, this allows it to exit more gracefully which allows tools like valgrind to monitor whether the program exits cleanly and do things like leak detection. * subversion/svnserve/svnserve.c (sigtermint_handler): New handler. (accept_connection): Check for signal. (sub_main): Install handler, check for signal, add return. Modified: subversion/trunk/subversion/svnserve/svnserve.c Modified: subversion/trunk/subversion/svnserve/svnserve.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/svnserve.c?rev=1908547=1908546=1908547=diff == --- subversion/trunk/subversion/svnserve/svnserve.c (original) +++ subversion/trunk/subversion/svnserve/svnserve.c Mon Mar 20 01:27:41 2023 @@ -492,6 +492,15 @@ static void sigchld_handler(int signo) } #endif +#ifdef APR_HAVE_SIGACTION +static svn_atomic_t sigtermint_seen = 0; +static void +sigtermint_handler(int signo) +{ +svn_atomic_set(_seen, 1); +} +#endif /* APR_HAVE_SIGACTION */ + /* Redirect stdout to stderr. ARG is the pool. * * In tunnel or inetd mode, we don't want hook scripts corrupting the @@ -547,6 +556,10 @@ accept_connection(connection_t **connect status = apr_socket_accept(&(*connection)->usock, sock, connection_pool); +#if APR_HAVE_SIGACTION + if (sigtermint_seen) + break; +#endif if (handling_mode == connection_mode_fork) { apr_proc_t proc; @@ -1330,11 +1343,20 @@ sub_main(int *exit_code, int argc, const } #endif +#if APR_HAVE_SIGACTION + apr_signal(SIGTERM, sigtermint_handler); + apr_signal(SIGINT, sigtermint_handler); +#endif + while (1) { connection_t *connection = NULL; SVN_ERR(accept_connection(, sock, , handling_mode, pool)); +#if APR_HAVE_SIGACTION + if (sigtermint_seen) + break; +#endif if (run_mode == run_mode_listen_once) { err = serve_socket(connection, connection->pool); @@ -1391,7 +1413,7 @@ sub_main(int *exit_code, int argc, const close_connection(connection); } - /* NOTREACHED */ + return SVN_NO_ERROR; } int
svn commit: r1908546 - in /subversion/trunk: Makefile.in build/run_tests.py subversion/tests/README subversion/tests/cmdline/svntest/main.py
Author: philip Date: Mon Mar 20 01:22:52 2023 New Revision: 1908546 URL: http://svn.apache.org/viewvc?rev=1908546=rev Log: Add suport for running valgrind during 'make check'. * Makefile.in (check): Add options. * build/run_tests.py (_init_c_tests, _init_py_tests): Add options. (_maybe_prepend_valgrind): New. (_run_c_test): Prepend valgrind. (create_parser): Add options. * subversion/tests/cmdline/svntest/main.py (libtool_script): New variable. (open_pipe): Prepend valgrind. (TestSpawningThread): Add options. (_create_parser): Add options. * subversion/tests/README: Describe valgrind testing.. Modified: subversion/trunk/Makefile.in subversion/trunk/build/run_tests.py subversion/trunk/subversion/tests/README subversion/trunk/subversion/tests/cmdline/svntest/main.py Modified: subversion/trunk/Makefile.in URL: http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1908546=1908545=1908546=diff == --- subversion/trunk/Makefile.in (original) +++ subversion/trunk/Makefile.in Mon Mar 20 01:22:52 2023 @@ -632,6 +632,12 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $ if test "$(STORE_PRISTINE)" != ""; then\ flags="--store-pristine $(STORE_PRISTINE) $$flags"; \ fi;\ + if test "$(VALGRIND)" != ""; then \ + flags="--valgrind $(VALGRIND) $$flags"; \ + fi;\ + if test "$(VALGRIND_OPTS)" != ""; then \ + flags="--valgrind-opts $(VALGRIND_OPTS) $$flags";\ + fi;\ LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)' \ $(PYTHON) $(top_srcdir)/build/run_tests.py \ --config-file $(top_srcdir)/subversion/tests/tests.conf \ Modified: subversion/trunk/build/run_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/build/run_tests.py?rev=1908546=1908545=1908546=diff == --- subversion/trunk/build/run_tests.py (original) +++ subversion/trunk/build/run_tests.py Mon Mar 20 01:22:52 2023 @@ -266,6 +266,10 @@ class TestHarness: cmdline.append('--parallel') if self.opts.store_pristine is not None: cmdline.append('--store-pristine=%s' % self.opts.store_pristine) +if self.opts.valgrind is not None: + cmdline.append('--valgrind=%s' % self.opts.valgrind) +if self.opts.valgrind_opts is not None: + cmdline.append('--valgrind-opts=%s' % self.opts.valgrind_opts) self.c_test_cmdline = cmdline @@ -335,6 +339,10 @@ class TestHarness: cmdline.append('--allow-remote-http-connection') if self.opts.store_pristine is not None: cmdline.append('--store-pristine=%s' % self.opts.store_pristine) +if self.opts.valgrind is not None: + cmdline.append('--valgrind=%s' % self.opts.valgrind) +if self.opts.valgrind_opts is not None: + cmdline.append('--valgrind-opts=%s' % self.opts.valgrind_opts) self.py_test_cmdline = cmdline @@ -814,6 +822,17 @@ class TestHarness: log.write('FAIL: %s: Unknown test failure (%s).\n' % (progbase, test_failed)) + def _maybe_prepend_valgrind(self, cmdline, progbase): +if self.opts.valgrind: + if (progbase in self.opts.valgrind.split(',') + or 'C' in self.opts.valgrind.split(',')): +valgrind = [os.path.join(self.builddir, 'libtool'), '--mode=execute', +'valgrind', '--quiet', '--error-exitcode=1'] +if self.opts.valgrind_opts: + valgrind += self.opts.valgrind_opts.split(' ') +cmdline = valgrind + cmdline +return cmdline + def _run_c_test(self, progabs, progdir, progbase, test_nums, dot_count): 'Run a c test, escaping parameters as required.' if self.opts.list_tests and self.opts.milestone_filter: @@ -849,6 +868,7 @@ class TestHarness: self.dots_written = dots tests_completed = 0 +cmdline = self._maybe_prepend_valgrind(cmdline, progbase) with Popen(cmdline, stdout=subprocess.PIPE, stderr=self.log) as prog: line = prog.stdout.readline() while line: @@ -1095,6 +1115,10 @@ def create_parser(): help='Run tests that connect to remote HTTP(S) servers') parser.add_option('--store-pristine', action='store', type='str', help='Set the WC pristine mode') + parser.add_option('--valgrind', action='store', +help='programs to run under valgrind') + parser.add_opt
svn commit: r1908545 - /subversion/trunk/build.conf
Author: philip Date: Mon Mar 20 01:20:29 2023 New Revision: 1908545 URL: http://svn.apache.org/viewvc?rev=1908545=rev Log: Fix a one definition rule (ODR) violation: explicitly linking to both the libsvn_subr amalgation wrapper and the libsvn_subr library is wrong. It's typically not a bug in a static build because the linker will usually not pull the unneeded file from the static library, but in a shared build the whole library is used at runtime. It was harmless in practice because the symbols were the same, so it didn't matter which ones were used, but an ODR violation is strictly undefined behaviour, even in non-amalgamtion builds when only a dummy symbol gets redefined. GCC's santizer detects ODR violations. * build.conf (wc-queries-test): Don't link SQLite wrapper. Modified: subversion/trunk/build.conf Modified: subversion/trunk/build.conf URL: http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1908545=1908544=1908545=diff == --- subversion/trunk/build.conf (original) +++ subversion/trunk/build.conf Mon Mar 20 01:20:29 2023 @@ -1337,7 +1337,7 @@ msvc-force-static = yes description = Test Sqlite query evaluation type = exe path = subversion/tests/libsvn_wc -sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c +sources = wc-queries-test.c install = test libs = libsvn_test libsvn_wc libsvn_subr apriconv apr sqlite
svn commit: r1908544 - /subversion/trunk/subversion/libsvn_subr/time.c
Author: philip Date: Mon Mar 20 01:18:59 2023 New Revision: 1908544 URL: http://svn.apache.org/viewvc?rev=1908544=rev Log: Fix a complier warning. * subversion/libsvn_subr/time.c (find_matching_string): strings[i] is an array and cannot be NULL. Modified: subversion/trunk/subversion/libsvn_subr/time.c Modified: subversion/trunk/subversion/libsvn_subr/time.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/time.c?rev=1908544=1908543=1908544=diff == --- subversion/trunk/subversion/libsvn_subr/time.c (original) +++ subversion/trunk/subversion/libsvn_subr/time.c Mon Mar 20 01:18:59 2023 @@ -124,7 +124,7 @@ find_matching_string(char *str, apr_size apr_size_t i; for (i = 0; i < size; i++) -if (strings[i] && (strcmp(str, strings[i]) == 0)) +if (strcmp(str, strings[i]) == 0) return (apr_int32_t) i; return -1;
svn commit: r1908543 - in /subversion/trunk: build/ac-macros/apr_memcache.m4 build/ac-macros/serf.m4 build/ac-macros/svn-macros.m4 configure.ac
Author: philip Date: Mon Mar 20 01:17:01 2023 New Revision: 1908543 URL: http://svn.apache.org/viewvc?rev=1908543=rev Log: Replace some deprected autoconf macros, this stops autoconf 2.72 complaining. The new macros have existed since 2.50. * configure.ac Remove AC_HEADER_STDC, change AC_HELP_STRING to AS_HELP_STRING. * build/ac-macros/apr_memcache.m4: Change AC_HELP_STRING to AS_HELP_STRING. * build/ac-macros/serf.m4 Change AC_TRY_COMPILE to AC_COMPILE_IFLSE. * build/ac-macros/svn-macros.m4 Change AC_TRY_RUN to AC_RUN_IFELSE. Modified: subversion/trunk/build/ac-macros/apr_memcache.m4 subversion/trunk/build/ac-macros/serf.m4 subversion/trunk/build/ac-macros/svn-macros.m4 subversion/trunk/configure.ac Modified: subversion/trunk/build/ac-macros/apr_memcache.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/apr_memcache.m4?rev=1908543=1908542=1908543=diff == --- subversion/trunk/build/ac-macros/apr_memcache.m4 (original) +++ subversion/trunk/build/ac-macros/apr_memcache.m4 Mon Mar 20 01:17:01 2023 @@ -29,7 +29,7 @@ AC_DEFUN(SVN_LIB_APR_MEMCACHE, [ apr_memcache_found=no - AC_ARG_WITH(apr_memcache,AC_HELP_STRING([--with-apr_memcache=PREFIX], + AC_ARG_WITH(apr_memcache,AS_HELP_STRING([--with-apr_memcache=PREFIX], [Standalone apr_memcache client library]), [ if test "$withval" = "yes" ; then Modified: subversion/trunk/build/ac-macros/serf.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/serf.m4?rev=1908543=1908542=1908543=diff == --- subversion/trunk/build/ac-macros/serf.m4 (original) +++ subversion/trunk/build/ac-macros/serf.m4 Mon Mar 20 01:17:01 2023 @@ -107,10 +107,10 @@ AC_DEFUN(SVN_SERF_PREFIX_CONFIG, save_ldflags="$LDFLAGS" LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$serf_prefix/lib)`" AC_CHECK_LIB($serf_major, serf_context_create,[ -AC_TRY_COMPILE([ +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #include #include "serf.h" -],[ +]])],[ #if ! SERF_VERSION_AT_LEAST($serf_check_major, $serf_check_minor, $serf_check_patch) #error Serf version too old: need $serf_check_version #endif Modified: subversion/trunk/build/ac-macros/svn-macros.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/svn-macros.m4?rev=1908543=1908542=1908543=diff == --- subversion/trunk/build/ac-macros/svn-macros.m4 (original) +++ subversion/trunk/build/ac-macros/svn-macros.m4 Mon Mar 20 01:17:01 2023 @@ -126,7 +126,7 @@ AC_DEFUN([SVN_REMOVE_STANDARD_LIB_DIRS], AC_DEFUN([SVN_CHECK_FOR_ATOMIC_BUILTINS], [ AC_CACHE_CHECK([whether the compiler provides atomic builtins], [svn_cv_atomic_builtins], - [AC_TRY_RUN([ + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ int main() { unsigned long long val = 1010, tmp, *mem = @@ -161,5 +161,5 @@ AC_DEFUN([SVN_CHECK_FOR_ATOMIC_BUILTINS] return 1; return 0; - }], [svn_cv_atomic_builtins=yes], [svn_cv_atomic_builtins=no], [svn_cv_atomic_builtins=no])]) + }]])], [svn_cv_atomic_builtins=yes], [svn_cv_atomic_builtins=no], [svn_cv_atomic_builtins=no])]) ]) Modified: subversion/trunk/configure.ac URL: http://svn.apache.org/viewvc/subversion/trunk/configure.ac?rev=1908543=1908542=1908543=diff == --- subversion/trunk/configure.ac (original) +++ subversion/trunk/configure.ac Mon Mar 20 01:17:01 2023 @@ -379,7 +379,7 @@ fi dnl Check for doxygen doxygen=yes AC_ARG_WITH(doxygen, -AC_HELP_STRING([--with-doxygen=PATH], +AS_HELP_STRING([--with-doxygen=PATH], [Specify the command to run doxygen]), [ doxygen="$withval" @@ -934,9 +934,6 @@ AC_SUBST(BDB_TEST_PROGRAMS) dnl Check for header files -dnl Standard C headers -AC_HEADER_STDC - dnl Check for typedefs, structures, and compiler characteristics -- dnl if compiler doesn't understand `const', then define it empty @@ -1249,7 +1246,7 @@ AC_SUBST(MOD_ACTIVATION) AC_ARG_ENABLE(gcov, -AC_HELP_STRING([--enable-gcov], +AS_HELP_STRING([--enable-gcov], [Turn on gcov coverage testing (GCC only).]), [ if test "$enableval" = "yes" ; then
svn commit: r1837265 - /subversion/site/publish/docs/release-notes/1.10.html
Author: philip Date: Wed Aug 1 23:06:17 2018 New Revision: 1837265 URL: http://svn.apache.org/viewvc?rev=1837265=rev Log: * publish/docs/release-notes/1.10.html: Typo. Modified: subversion/site/publish/docs/release-notes/1.10.html Modified: subversion/site/publish/docs/release-notes/1.10.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.10.html?rev=1837265=1837264=1837265=diff == --- subversion/site/publish/docs/release-notes/1.10.html (original) +++ subversion/site/publish/docs/release-notes/1.10.html Wed Aug 1 23:06:17 2018 @@ -232,7 +232,7 @@ should refer to the title="Link to this section"> -The impoved path-based authorization +The improved path-based authorization changes the behaviour of some existing authz files. The 1.9 and earlier implementations allowed multiple rules for the
svn commit: r1837185 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: philip Date: Tue Jul 31 22:14:08 2018 New Revision: 1837185 URL: http://svn.apache.org/viewvc?rev=1837185=rev Log: * subversion/libsvn_client/conflicts.c (svn_client_conflict_option_get_moved_to_abspath_candidates): Adjust indentation, i.e. whitespace only, to fix a compiler warning about misleading indentation. Modified: subversion/trunk/subversion/libsvn_client/conflicts.c Modified: subversion/trunk/subversion/libsvn_client/conflicts.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1837185=1837184=1837185=diff == --- subversion/trunk/subversion/libsvn_client/conflicts.c (original) +++ subversion/trunk/subversion/libsvn_client/conflicts.c Tue Jul 31 22:14:08 2018 @@ -10446,30 +10446,30 @@ svn_client_conflict_option_get_moved_to_ details = conflict->tree_conflict_incoming_details; if (details == NULL || details->wc_move_targets == NULL) - return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL, -_("Getting a list of possible move targets " - "requires details for tree conflict at '%s' " - "to be fetched from the repository first"), - svn_dirent_local_style(victim_abspath, - scratch_pool)); +return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL, + _("Getting a list of possible move targets " + "requires details for tree conflict at '%s' " + "to be fetched from the repository first"), + svn_dirent_local_style(victim_abspath, +scratch_pool)); - move_target_wc_abspaths = + move_target_wc_abspaths = svn_hash_gets(details->wc_move_targets, get_moved_to_repos_relpath(details, scratch_pool)); - /* Return a copy of the option's move target candidate list. */ - *possible_moved_to_abspaths = + /* Return a copy of the option's move target candidate list. */ + *possible_moved_to_abspaths = apr_array_make(result_pool, move_target_wc_abspaths->nelts, sizeof (const char *)); - for (i = 0; i < move_target_wc_abspaths->nelts; i++) - { - const char *moved_to_abspath; + for (i = 0; i < move_target_wc_abspaths->nelts; i++) +{ + const char *moved_to_abspath; - moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i, -const char *); - APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) = + moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i, + const char *); + APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) = apr_pstrdup(result_pool, moved_to_abspath); - } +} } return SVN_NO_ERROR;
svn commit: r1837184 - /subversion/trunk/subversion/libsvn_wc/wc_db.c
Author: philip Date: Tue Jul 31 22:09:16 2018 New Revision: 1837184 URL: http://svn.apache.org/viewvc?rev=1837184=rev Log: * subversion/libsvn_wc/wc_db.c (svn_wc__db_find_working_nodes_with_basename): Remove unused variable. Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1837184=1837183=1837184=diff == --- subversion/trunk/subversion/libsvn_wc/wc_db.c (original) +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Tue Jul 31 22:09:16 2018 @@ -16651,11 +16651,9 @@ svn_wc__db_find_working_nodes_with_basen while (have_row) { - svn_wc__db_status_t presence; const char *local_relpath; const char *local_abspath; - presence = svn_sqlite__column_token(stmt, 0, presence_map); local_relpath = svn_sqlite__column_text(stmt, 1, NULL); local_abspath = svn_dirent_join(wcroot->abspath, local_relpath, result_pool);
svn commit: r1837098 - /subversion/site/publish/docs/release-notes/1.10.html
Author: philip Date: Tue Jul 31 00:11:45 2018 New Revision: 1837098 URL: http://svn.apache.org/viewvc?rev=1837098=rev Log: * publish/docs/release-notes/1.10.html: typo Modified: subversion/site/publish/docs/release-notes/1.10.html Modified: subversion/site/publish/docs/release-notes/1.10.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.10.html?rev=1837098=1837097=1837098=diff == --- subversion/site/publish/docs/release-notes/1.10.html (original) +++ subversion/site/publish/docs/release-notes/1.10.html Tue Jul 31 00:11:45 2018 @@ -279,7 +279,7 @@ for the same path: In 1.9 this would define access for both userA -and userB, in 1.10 the per-repository rule override the +and userB, in 1.10 the per-repository rule overrides the global rule and this only defines access for userB. The 1.10 implementation may change in future 1.10.x releases, but the exact change is still being discussed on the dev mailing list.
svn commit: r1837096 - /subversion/site/publish/docs/release-notes/1.10.html
Author: philip Date: Mon Jul 30 23:54:42 2018 New Revision: 1837096 URL: http://svn.apache.org/viewvc?rev=1837096=rev Log: * publish/docs/release-notes/1.10.html (#new-feature-compatibility-table): Link to #authz-compatibility. (#authz-compatibility): New, describe authz compatibility concerns. (#authzperf, #issue-svn-4762): Link to #authz-compatibility. Modified: subversion/site/publish/docs/release-notes/1.10.html Modified: subversion/site/publish/docs/release-notes/1.10.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.10.html?rev=1837096=1837095=1837096=diff == --- subversion/site/publish/docs/release-notes/1.10.html (original) +++ subversion/site/publish/docs/release-notes/1.10.html Mon Jul 30 23:54:42 2018 @@ -114,7 +114,7 @@ and what impact these changes may have.< any 1.10 any -Existing authz configurations may need to be adjusted. +Existing authz configurations may need to be adjusted. New interactive conflict resolver @@ -226,6 +226,66 @@ should refer to the + +New path-based authorization compatibility + + + +The impoved path-based authorization + changes the behaviour of some existing authz files. + +The 1.9 and earlier implementations allowed multiple rules for the +same path: + + + [/some/path] + userA = r + [/some/path] + userB = rw + + +In 1.9 this would define access for both userA +and userB, in 1.10 this raises an error and no access is +possible. + +The 1.9 and earlier implementations allowed multiple entries +matching the same name, alias or group and the last match applied: + + + [/some/path] + user = rw + user = r + = rw + = r + @group = rw + @group = r + + +In 1.9 the final, read-only, match +for user, and @group would be +selected while 1.10 combines all the lines to give read-write access. +The 1.10 implementation may change in future 1.10.x releases, perhaps +to make this case an error. + +The 1.9 implementation combined the global and per-repository rules +for the same path: + + + [/some/path] + userA = rw + [repository:/some/path] + userB = r + + +In 1.9 this would define access for both userA +and userB, in 1.10 the per-repository rule override the +global rule and this only defines access for userB. The 1.10 +implementation may change in future 1.10.x releases, but the exact +change is still being discussed on the dev mailing list. + + + svnadmin subcommands print locked paths differently Subversion 1.10 provides a new implementation of path-based authorization -with improved performance and wildcard support. +with improved performance and wildcard support. There are some +compatibility issues. Existing authz rules come in two flavours, repository-specific and global: @@ -959,7 +1020,8 @@ tracker for details and for other is -Broken in 1.10.0 and 1.10.1. +Broken in 1.10.0 and 1.10.1. See also + path-based authorization compatibility.
svn commit: r1836964 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Sun Jul 29 12:02:32 2018 New Revision: 1836964 URL: http://svn.apache.org/viewvc?rev=1836964=rev Log: * STATUS: Vote/approve issue 4744 fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1836964=1836963=1836964=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Sun Jul 29 12:02:32 2018 @@ -15,19 +15,6 @@ Status of 1.10.3: Candidate changes: == - * r1833895, r1833897, r1833899, r1833901 - Fix issue #4744 "during merge: assertion failed (start_rev > end_rev)" - Justification: - Fixes undesirable conflict resolver behaviour. - Notes: - r1833895 adds a regression test - r1833897 prevents offer of a non-working resolution option - r1833899 fixes accidental test breakage introduced by r1833897 - r1833901 prevents the assertion failure and adjusts the test - Issue #4739 fix should be merged before this to avoid merge conflicts. - Votes: -+1: stsp, jcorvel - * r1833465 Enforce the v1 HTTP protocol when a client sends PUT before CHECKOUT. Justification: @@ -63,3 +50,16 @@ Veto-blocked changes: Approved changes: = + + * r1833895, r1833897, r1833899, r1833901 + Fix issue #4744 "during merge: assertion failed (start_rev > end_rev)" + Justification: + Fixes undesirable conflict resolver behaviour. + Notes: + r1833895 adds a regression test + r1833897 prevents offer of a non-working resolution option + r1833899 fixes accidental test breakage introduced by r1833897 + r1833901 prevents the assertion failure and adjusts the test + Issue #4739 fix should be merged before this to avoid merge conflicts. + Votes: + +1: stsp, jcorvel, philip
svn commit: r1836839 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Jul 27 16:17:42 2018 New Revision: 1836839 URL: http://svn.apache.org/viewvc?rev=1836839=rev Log: * STATUS: Vote/approve issue 4739 fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1836839=1836838=1836839=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Jul 27 16:17:42 2018 @@ -15,19 +15,6 @@ Status of 1.10.3: Candidate changes: == - * r1830083, r1833864, r1833866 - Fix issue #4739, "Accept incoming deletion" option doing nothing - for a locally deleted file - Justification: - Fixes undesirable conflict resolver behaviour. - Notes: - r1830083 adds a regression test - r1833864 fixes the issue - r1833866 is a small follow-up fix - Issue #4744 fix should be merged after this to avoid merge conflicts. - Votes: - +1: stsp, jcorvel - * r1833895, r1833897, r1833899, r1833901 Fix issue #4744 "during merge: assertion failed (start_rev > end_rev)" Justification: @@ -76,3 +63,16 @@ Veto-blocked changes: Approved changes: = + + * r1830083, r1833864, r1833866 + Fix issue #4739, "Accept incoming deletion" option doing nothing + for a locally deleted file + Justification: + Fixes undesirable conflict resolver behaviour. + Notes: + r1830083 adds a regression test + r1833864 fixes the issue + r1833866 is a small follow-up fix + Issue #4744 fix should be merged after this to avoid merge conflicts. + Votes: + +1: stsp, jcorvel, philip
svn commit: r1836803 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Jul 27 10:46:22 2018 New Revision: 1836803 URL: http://svn.apache.org/viewvc?rev=1836803=rev Log: * STATUS: Extend client cert password proposal. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1836803=1836802=1836803=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Jul 27 10:46:22 2018 @@ -64,7 +64,7 @@ Candidate changes: Votes: +1: philip, danielsh - * r1836762 + * r1836762, r1836802 Store the HTTPS client cert password. Justification: Restores a feature lost when we switched from neon to serf.
svn commit: r1836802 - /subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
Author: philip Date: Fri Jul 27 10:43:54 2018 New Revision: 1836802 URL: http://svn.apache.org/viewvc?rev=1836802=rev Log: Followup to r1836762, now that we store client cert passwords it turns out that the libsecret gnome keyring doesn't accept NULL usernames. Pass a dummy username as a workaround. * subversion/libsvn_subr/ssl_client_cert_pw_providers.c (DUMMY_USERNAME): New. (svn_auth__ssl_client_cert_pw_cache_get, svn_auth__ssl_client_cert_pw_cache_set): Pass dummy username. Modified: subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c Modified: subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c?rev=1836802=1836801=1836802=diff == --- subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c (original) +++ subversion/trunk/subversion/libsvn_subr/ssl_client_cert_pw_providers.c Fri Jul 27 10:43:54 2018 @@ -36,7 +36,7 @@ #include "svn_private_config.h" /*---*/ -/* File provider */ +/* File password provider*/ /*---*/ /* Baton type for the ssl client cert passphrase provider. */ @@ -51,6 +51,13 @@ typedef struct ssl_client_cert_pw_file_p apr_hash_t *plaintext_answers; } ssl_client_cert_pw_file_provider_baton_t; +/* The client cert password provider only deals with a password and + realm (the client cert filename), there is no username. The gnome + keyring backend based on libsecret requires a non-NULL username so + we have to invent one. An empty string is acceptable and doesn't + change the value stored by the kwallet backend. */ +#define DUMMY_USERNAME "" + /* This implements the svn_auth__password_get_t interface. Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS; ignore other parameters. */ @@ -132,7 +139,8 @@ svn_auth__ssl_client_cert_pw_cache_get(v svn_boolean_t done; SVN_ERR(passphrase_get(, , creds_hash, realmstring, - NULL, parameters, non_interactive, pool)); + DUMMY_USERNAME, parameters, non_interactive, + pool)); if (!done) password = NULL; } @@ -293,7 +301,7 @@ svn_auth__ssl_client_cert_pw_cache_set(s if (may_save_passphrase) { SVN_ERR(passphrase_set(saved, creds_hash, realmstring, - NULL, creds->password, parameters, + DUMMY_USERNAME, creds->password, parameters, non_interactive, pool)); if (*saved && passtype)
svn commit: r1836764 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Thu Jul 26 20:24:24 2018 New Revision: 1836764 URL: http://svn.apache.org/viewvc?rev=1836764=rev Log: * STATUS: Propose client cert password saving fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1836764=1836763=1836764=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Thu Jul 26 20:24:24 2018 @@ -64,6 +64,13 @@ Candidate changes: Votes: +1: philip, danielsh + * r1836762 + Store the HTTPS client cert password. + Justification: + Restores a feature lost when we switched from neon to serf. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1836762 - /subversion/trunk/subversion/libsvn_ra_serf/util.c
Author: philip Date: Thu Jul 26 20:20:26 2018 New Revision: 1836762 URL: http://svn.apache.org/viewvc?rev=1836762=rev Log: Allow the client cert password to be saved. The ra_neon library used to do this but the fuction was lost when we switched to serf. * subversion/libsvn_ra_serf/util.c (handle_client_cert_pw): Add comment. (handle_response): Invoke svn_auth_save_credentials for the client cert creds. Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1836762=1836761=1836762=diff == --- subversion/trunk/subversion/libsvn_ra_serf/util.c (original) +++ subversion/trunk/subversion/libsvn_ra_serf/util.c Thu Jul 26 20:20:26 2018 @@ -756,6 +756,9 @@ handle_client_cert_pw(void *data, if (creds) { +/* At this stage we are unable to check whether the password + is correct; if it is incorrect serf will fail to establish + an SSL connection and will return a generic SSL error. */ svn_auth_cred_ssl_client_cert_pw_t *pw_creds; pw_creds = creds; *password = pw_creds->password; @@ -1445,6 +1448,23 @@ handle_response(serf_request_t *request, process_body: + /* A client cert file password was obtained and worked (any HTTP + response means that the SSL connection was established.) */ + if (handler->conn->ssl_client_pw_auth_state) +{ + SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_pw_auth_state, +handler->session->pool)); + handler->conn->ssl_client_pw_auth_state = NULL; +} + if (handler->conn->ssl_client_auth_state) +{ + /* The cert file provider doesn't have any code to save creds so + this is currently a no-op. */ + SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_auth_state, +handler->session->pool)); + handler->conn->ssl_client_auth_state = NULL; +} + /* We've been instructed to ignore the body. Drain whatever is present. */ if (handler->discard_body) {
svn commit: r1836591 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Jul 24 23:28:16 2018 New Revision: 1836591 URL: http://svn.apache.org/viewvc?rev=1836591=rev Log: * STATUS: Propose pipe/fifo fix (danielsh via email). Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1836591=1836590=1836591=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Jul 24 23:28:16 2018 @@ -57,6 +57,13 @@ Candidate changes: Votes: +1: julianfoad, jamessan + * r1836306 + Ignore stat() reporting size zero when reading from pipe/fifo. + Justification: + Makes things like 'svn ci -F <(echo foo)' work. + Votes: + +1: philip, danielsh + Veto-blocked changes: =
svn commit: r1836306 - /subversion/trunk/subversion/libsvn_subr/io.c
Author: philip Date: Thu Jul 19 23:10:51 2018 New Revision: 1836306 URL: http://svn.apache.org/viewvc?rev=1836306=rev Log: * subversion/libsvn_subr/io.c (stringbuf_from_aprfile): If the file is a FIFO then do not rely on the filesize as it will always be zero. This allows things like: svn commit -F <(echo foo) svnmucc propsetf p <(echo bar) URL Modified: subversion/trunk/subversion/libsvn_subr/io.c Modified: subversion/trunk/subversion/libsvn_subr/io.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?rev=1836306=1836305=1836306=diff == --- subversion/trunk/subversion/libsvn_subr/io.c (original) +++ subversion/trunk/subversion/libsvn_subr/io.c Thu Jul 19 23:10:51 2018 @@ -2546,9 +2546,10 @@ stringbuf_from_aprfile(svn_stringbuf_t * { apr_finfo_t finfo = { 0 }; - /* In some cases we get size 0 and no error for non files, - so we also check for the name. (= cached in apr_file_t) */ - if (! apr_file_info_get(, APR_FINFO_SIZE, file) && finfo.fname) + /* In some cases we get size 0 and no error for non files, so we + also check for the name. (= cached in apr_file_t) and for FIFOs */ + if (! apr_file_info_get(, APR_FINFO_SIZE | APR_FINFO_TYPE, file) + && finfo.fname && finfo.filetype != APR_PIPE) { /* we've got the file length. Now, read it in one go. */ svn_boolean_t eof;
svn commit: r1835770 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Thu Jul 12 19:37:34 2018 New Revision: 1835770 URL: http://svn.apache.org/viewvc?rev=1835770=rev Log: * STATUS: Vote for gnome keyring fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1835770=1835769=1835770=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Thu Jul 12 19:37:34 2018 @@ -71,7 +71,7 @@ Candidate changes: Private API violation; fixes user-reported segfault due to uninitialized stack variable. Votes: - +1: danielsh + +1: danielsh, philip Veto-blocked changes: =
svn commit: r1834175 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Fri Jun 22 23:51:05 2018 New Revision: 1834175 URL: http://svn.apache.org/viewvc?rev=1834175=rev Log: * STATUS: Propose HTTP v1 protocol fix. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1834175=1834174=1834175=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Fri Jun 22 23:51:05 2018 @@ -119,6 +119,14 @@ Candidate changes: Votes: +1: stsp + * r1833465 + Enforce the v1 HTTP protocol when a client sends PUT before CHECKOUT. + Justification: + Return an error when the client gets the protocol wrong. + Branch: ^/subversion/branches/1.9.x-r1833465 + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1834174 - in /subversion/branches/1.9.x-r1833465: ./ subversion/mod_dav_svn/repos.c
Author: philip Date: Fri Jun 22 23:48:57 2018 New Revision: 1834174 URL: http://svn.apache.org/viewvc?rev=1834174=rev Log: On 1.9.x-r1833465 branch: merge r1833465 and adjust call to dav_svn__new_error. Modified: subversion/branches/1.9.x-r1833465/ (props changed) subversion/branches/1.9.x-r1833465/subversion/mod_dav_svn/repos.c Propchange: subversion/branches/1.9.x-r1833465/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jun 22 23:48:57 2018 @@ -110,4 +110,4 @@ /subversion/branches/verify-at-commit:1462039-1462408 /subversion/branches/verify-keep-going:1439280-1546110 /subversion/branches/wc-collate-path:1402685-1480384 -/subversion/trunk:1660545-1660547,1660549-1662901,1663003,1663183-1663184,1663253,1663286,1663338,1663347,1663355,1663374,1663450,1663500,1663530,1663671,1663697,1663706,1663738,1663749,1663791,1663991,1664035,1664078,1664080,1664084-1664085,1664187,1664191,1664193,1664200,1664344,1664476,1664480-1664481,1664483,1664489-1664490,1664507,1664520-1664521,1664523,1664526-1664527,1664531-1664532,1664588,1664593-1664594,1664596,1664653,1664664,1664672,1664674,1664684,1664927,1664938-1664940,1664978,1664984,1664997,1665164,1665195,1665213,1665259,1665318,1665437-1665438,1665609,1665611-1665612,1665845,1665850,1665852,1665873,1665886,1665894,1665896,1666096,1666258,1666270,1666272,1666379,1666449,190,1666832,1666851,1666965,1667101,1667106-1667107,1667120,1667228,1667233-1667235,1667249-1667250,1667258,1667290,1667301,1667471,1667691-1667693,1667699-1667700,1667715,1667738,1667941,1667976,1668320,1668598-1668600,1668602-1668603,1668607-1668608,1668618,1668625,1669743,1669746,1669749,166 9945,1670139,1670149,1670152,1670329,1670337,1670347,1670353,1671164,1671388,1672295,1672311,1672372,1672404,1672511-1672512,1672578,1672728,1673044,1673062-1673063,1673065,1673153,1673170,1673172,1673197,1673202,1673204,1673228,1673282,1673445,1673691-1673692,1673746,1673785,1673803,1674015,1674032,1674170,1674301,1674305,1674308,1674339-1674340,1674406,1674415,1674455-1674456,1674475,1674487,1674522,1674580,1674626-1674627,1674785,1674891,1675771,1675774,1676526,1676535,1676538,1676555,1676564,1676570,1676665,1676667,1676769,1677003,1677191,1677267,1677440,1678147,1678149,1678494,1678571,1678734,1678742,1678745-1678746,1678755,1678839,1678846,1678894,1678950,1678963,1679166,1679169,1679228,1679230,1679240,1679287,1679864,1679866,1679909,1680242,1680264,1680495,1680705,1680819,1681317,1682714,1682854,1683071,1683126,1683135,1683266-1683267,1683290,1683303,1683311,1683378,1683387,1684034,1684077,1684322,1684325,1684344,1684412,1684940,1685034,1685085,1686175,1686239,1686478,1686541, 1686543,1686554,1686557,1686802,1686888,1686984,1687029,1687304,1687389,1687769,1687776,1687812,1688258,1688273,1688395,1689214,1689216,1689721,1689729,1691712-1691713,1691924,1691928,1692091,1692093,1692098,1692448,1692469-1692470,1692798-1692799,1693135,1693138,1693159,1693886,1694023,1694194,1694481,1694929,1695022,1695600,1695606,1695681,1696222,1696225,1696387,1696695,1697381,1697384,1697387,1697664,1697824,1697835,1697845,1697914,1697967,1698106,1698312,1700130,1700215,1700219-1700220,1700740,1700951,1701064,1701206,1701270,1701298,1701598,1701603,1701611,1701633,1701638,1701646,1701736,1701792,1701797,1701838,1701997,1702198,1702200,1702203,1702218,1702231,1702237-1702239,1702247,1702288,1702299-1702300,1702310,1702397,1702407,1702467,1702472,1702474,1702478,1702533,1702549,1702553,1702565,1702891,1702974,1702991,1703470,1703475-1703477,1703544,1703581,1703675,1703688-1703689,1703740,1704292,1704573,1704821,1704847,1705060,1705062,1705064,1705088,1705328,1705843,1706241,17063 23-1706324,1706375,1706428,1706432,1706437,1706783,1706983,1706999,1708699,1709388-1709389,1709553,1709562,1710104,1710167,1710215,1710290,1710558,1711250,1711346,1711507,1711510,1714314,1714358,1714790,1715224,1715232,1715262,1715777,1715793,1716808,1717154,1717869,1717871,1717873-1717875,1717878,1718167,1718267,1718269,1718484,1720015,1720643,1721174-1721175,1721285,1721488,1721648,1722164,1722860-1722861,1722879,1722887,1724448,1725180,1728308,1728387,1729060,1729519,1730856,1734106,1734926,1735179,1735826,1736432,1737122,1738259,1738659,1738828,1739278,1739280,1740252,1740254,1740316,1741071-1741073,1741078,1741096,1741200,1741206,1741401,1745515,1746053,1746277,1746364,1748514,1754190,1756266,1757529,1757532,1757539,1758128-1758130,1758153,1758202,1758204,1758207,1758209,1758224,1758269,1758385,1758781,1759116-1759124,1759686,1760570,1761334,1761653,1761755,1762338-1762339,1763934,1764034,1764676,1764851,1766240,1766323,1766327,1766352,1766590,1766699,1766704,1766711,1767768,17 69152,1769456,1769973,1770677,1774109,1776742,1776783,1776788,1777103,1779948,1781507,1781655,1783214,1783704,1785053,1785734,1785737-1785738,1785754,1786445-1786447,1786515,1794611,1795116,1796158,1796420,1796720,1800619,1802080,1802316,1804691
svn commit: r1834173 - /subversion/branches/1.9.x-r1833465/
Author: philip Date: Fri Jun 22 23:45:05 2018 New Revision: 1834173 URL: http://svn.apache.org/viewvc?rev=1834173=rev Log: Create 1.9.x-r1833465 branch. Added: subversion/branches/1.9.x-r1833465/ (props changed) - copied from r1834172, subversion/branches/1.9.x/ Propchange: subversion/branches/1.9.x-r1833465/ -- --- svn:auto-props (added) +++ svn:auto-props Fri Jun 22 23:45:05 2018 @@ -0,0 +1,13 @@ +*.c = svn:eol-style=native +*.cpp = svn:eol-style=native +*.h = svn:eol-style=native +*.hpp = svn:eol-style=native +*.java = svn:eol-style=native +*.py = svn:eol-style=native +*.pl = svn:eol-style=native +*.rb = svn:eol-style=native +*.sql = svn:eol-style=native +*.txt = svn:eol-style=native +README = svn:eol-style=native +BRANCH-README = svn:eol-style=native +STATUS = svn:eol-style=native Propchange: subversion/branches/1.9.x-r1833465/ -- --- svn:ignore (added) +++ svn:ignore Fri Jun 22 23:45:05 2018 @@ -0,0 +1,57 @@ +ChangeLog* +Makefile +config.cache +config.log +config.nice +config.status +configure +libtool +.gdb_history +.swig_checked +*.orig +*.rej +TAGS +tags +neon +build-outputs.mk +autogen-standalone.mk +autom4te.cache +gen-make.opts +tests.log* +fails.log* +db4-win32 +db +*.o +*~ +.*~ +apr +apr-util +apr-iconv +Release +Debug +ipch +subversion_msvc.dsw +subversion_msvc.ncb +subversion_msvc.opt +subversion_msvc.plg +subversion_vcnet.sln +subversion_vcnet.ncb +subversion_vcnet.suo +subversion_vcnet.v11.suo +subversion_vcnet.sdf +subversion_vcnet.opensdf +mkmf.log +.project +.classpath +.cdtproject +.settings +.cproject +zlib +sqlite-amalgamation +serf +gmock-fused +.git +.gitignore +compile_commands.json +.kdev4 +*.kdev4 Propchange: subversion/branches/1.9.x-r1833465/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Jun 22 23:45:05 2018 @@ -0,0 +1,113 @@ +/subversion/branches/1.10-cache-improvements:1675666-1677522,1679679,1679681,1679859 +/subversion/branches/1.5.x-r30215:870312 +/subversion/branches/1.7.x-fs-verify:1146708,1161180 +/subversion/branches/1.9-cache-improvements:1678948-1679863 +/subversion/branches/1.9.x-fix-fsfs:1796142-1796469 +/subversion/branches/1.9.x-fsfs-pack-fixes:1759183-1770158 +/subversion/branches/1.9.x-fsfs-rep-comparison:1717869-1739708 +/subversion/branches/1.9.x-issue4722:1826271-1827687 +/subversion/branches/1.9.x-r1664664:1674265-1674433 +/subversion/branches/1.9.x-r1667233:1673207-1673638 +/subversion/branches/1.9.x-r1700215:1701365-1703825 +/subversion/branches/1.9.x-r1703581:1703613-1713071 +/subversion/branches/1.9.x-r1706428:1711251-1716560 +/subversion/branches/1.9.x-r1721488:1723204-1764572,1764631-1764637 +/subversion/branches/1.9.x-r1725180:1727683-1739396 +/subversion/branches/1.9.x-r1757529-group:1757739-1757935 +/subversion/branches/1.9.x-r1758224-group:1758407-1758693 +/subversion/branches/1.9.x-r1785053:1786519-1794526 +/subversion/branches/1.9.x-r1795116:1795117-1814247 +/subversion/branches/1.9.x-r1802316:1802343-1803754 +/subversion/branches/1.9.x-r1808955:1808957-1820522 +/subversion/branches/1.9.x-rep-cache-db-fixes:1743185-1757778 +/subversion/branches/1.9.x-strict-rep-sharing:1786535-1795992 +/subversion/branches/10Gb:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955 +/subversion/branches/atomic-revprop:965046-1000689 +/subversion/branches/authzperf:1615360 +/subversion/branches/auto-props-sdc:1384106-1401643 +/subversion/branches/bdb-reverse-deltas:872050-872529 +/subversion/branches/cache-server:1458643-1476567 +/subversion/branches/diff-callbacks3:870059-870761 +/subversion/branches/diff-optimizations:1031270-1037352 +/subversion/branches/diff-optimizations-bytes:1037353-1067789 +/subversion/branches/dont-save-plaintext-passwords-by-default:870728-871118 +/subversion/branches/double-delete:870511-872970 +/subversion/branches/dump-load-cross-check:1654853-1657295 +/subversion/branches/ev2-export:1325914,1332738,1413107 +/subversion/branches/explore-wc:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,875864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997 +/subversion/branches/file-externals:871779-873302 +/subversion/branches/fs-rep-sharing:869036-873803 +/subversion/branches/fsfs-format7
svn commit: r1834172 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Jun 22 23:17:20 2018 New Revision: 1834172 URL: http://svn.apache.org/viewvc?rev=1834172=rev Log: * STATUS: Vote for conflict resolver search limit fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1834172=1834171=1834172=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Jun 22 23:17:20 2018 @@ -50,7 +50,7 @@ Candidate changes: User complained and provided a reproduction script: https://svn.haxx.se/users/archive-2018-04/0060.shtml Votes: - +1: stsp + +1: stsp, philip * r1830083, r1833864, r1833866 Fix issue #4739, "Accept incoming deletion" option doing nothing
svn commit: r1834166 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Jun 22 22:01:50 2018 New Revision: 1834166 URL: http://svn.apache.org/viewvc?rev=1834166=rev Log: * STATUS: Propose HTTP v1 protocol fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1834166=1834165=1834166=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Jun 22 22:01:50 2018 @@ -78,6 +78,13 @@ Candidate changes: Votes: +1: stsp + * r1833465 + Enforce the v1 HTTP protocol when a client sends PUT before CHECKOUT. + Justification: + Return an error when the client gets the protocol wrong. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1834063 - in /subversion/trunk/subversion/svn: shelf-cmd.c svn.c
Author: philip Date: Thu Jun 21 22:02:21 2018 New Revision: 1834063 URL: http://svn.apache.org/viewvc?rev=1834063=rev Log: Allow "svn x-shelf-log" from outside the working copy. * subversion/svn/shelf-cmd.c (svn_cl__shelf_log): Accept path arguments, supply default '.' path. * subversion/svn/svn.c (svn_cl__cmd_table): Update help text. Modified: subversion/trunk/subversion/svn/shelf-cmd.c subversion/trunk/subversion/svn/svn.c Modified: subversion/trunk/subversion/svn/shelf-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/shelf-cmd.c?rev=1834063=1834062=1834063=diff == --- subversion/trunk/subversion/svn/shelf-cmd.c (original) +++ subversion/trunk/subversion/svn/shelf-cmd.c Thu Jun 21 22:02:21 2018 @@ -1124,20 +1124,30 @@ svn_cl__shelf_log(apr_getopt_t *os, void *baton, apr_pool_t *pool) { + svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state; svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; const char *name; - const char *local_abspath; + apr_array_header_t *targets = NULL; + apr_pool_t *iterpool = svn_pool_create(pool); + int i; SVN_ERR(get_next_argument(, os, pool, pool)); - /* There should be no remaining arguments. */ - if (os->ind < os->argc) -return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, -_("Too many arguments")); - - SVN_ERR(svn_dirent_get_absolute(_abspath, "", pool)); - SVN_ERR(shelf_log(name, local_abspath, -ctx, pool)); + SVN_ERR(svn_cl__args_to_target_array_print_reserved(, os, + opt_state->targets, + ctx, FALSE, pool)); + svn_opt_push_implicit_dot_target(targets, pool); + + for (i = 0; i < targets->nelts; ++i) +{ + const char *target = APR_ARRAY_IDX(targets, i, const char *); + + svn_pool_clear(iterpool); + SVN_ERR(shelf_log(name, target, +ctx, pool)); +} + + svn_pool_destroy(iterpool); return SVN_NO_ERROR; } Modified: subversion/trunk/subversion/svn/svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1834063=1834062=1834063=diff == --- subversion/trunk/subversion/svn/svn.c (original) +++ subversion/trunk/subversion/svn/svn.c Thu Jun 21 22:02:21 2018 @@ -1999,9 +1999,10 @@ const svn_opt_subcommand_desc3_t svn_cl_ { "x-shelf-log", svn_cl__shelf_log, {"shelf-log"}, {N_( "Show the versions of a shelf.\n" - "usage: x-shelf-log SHELF\n" + "usage: x-shelf-log SHELF [PATH...]\n" "\n"), N_( - " Show all versions of SHELF.\n" + " Show all versions of SHELF for each working copy containing PATH (the\n" + " default PATH is '.').\n" "\n"), N_( " The shelving feature is EXPERIMENTAL. This command is likely to change\n" " in the next release, and there is no promise of backward compatibility.\n"
svn commit: r1833937 - in /subversion/trunk/subversion/svn: shelf-cmd.c svn.c
Author: philip Date: Wed Jun 20 19:19:52 2018 New Revision: 1833937 URL: http://svn.apache.org/viewvc?rev=1833937=rev Log: Allow "svn x-shelf-drop" from outside the working copy. * subversion/svn/shelf-cmd.c (svn_cl__shelf_drop): Accept path arguments, supply default '.' path. * subversion/svn/svn.c (svn_cl__cmd_table): Update help text. Modified: subversion/trunk/subversion/svn/shelf-cmd.c subversion/trunk/subversion/svn/svn.c Modified: subversion/trunk/subversion/svn/shelf-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/shelf-cmd.c?rev=1833937=1833936=1833937=diff == --- subversion/trunk/subversion/svn/shelf-cmd.c (original) +++ subversion/trunk/subversion/svn/shelf-cmd.c Wed Jun 20 19:19:52 2018 @@ -1068,18 +1068,28 @@ svn_cl__shelf_drop(apr_getopt_t *os, svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state; svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; const char *name; - const char *local_abspath; + apr_array_header_t *targets = NULL; + apr_pool_t *iterpool = svn_pool_create(pool); + int i; SVN_ERR(get_next_argument(, os, pool, pool)); - /* There should be no remaining arguments. */ - if (os->ind < os->argc) -return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL); - - SVN_ERR(svn_dirent_get_absolute(_abspath, "", pool)); - SVN_ERR(shelf_drop(name, local_abspath, - opt_state->dry_run, opt_state->quiet, - ctx, pool)); + SVN_ERR(svn_cl__args_to_target_array_print_reserved(, os, + opt_state->targets, + ctx, FALSE, pool)); + svn_opt_push_implicit_dot_target(targets, pool); + + for (i = 0; i < targets->nelts; ++i) +{ + const char *target = APR_ARRAY_IDX(targets, i, const char *); + + svn_pool_clear(iterpool); + SVN_ERR(shelf_drop(name, target, + opt_state->dry_run, opt_state->quiet, + ctx, iterpool)); +} + + svn_pool_destroy(iterpool); return SVN_NO_ERROR; } Modified: subversion/trunk/subversion/svn/svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1833937=1833936=1833937=diff == --- subversion/trunk/subversion/svn/svn.c (original) +++ subversion/trunk/subversion/svn/svn.c Wed Jun 20 19:19:52 2018 @@ -1962,9 +1962,10 @@ const svn_opt_subcommand_desc3_t svn_cl_ { "x-shelf-drop", svn_cl__shelf_drop, {"shelf-drop"}, {N_( "Delete a shelf.\n" - "usage: x-shelf-drop SHELF\n" + "usage: x-shelf-drop SHELF [PATH ...]\n" "\n"), N_( - " Delete the shelf named SHELF.\n" + " Delete the shelves named SHELF from the working copies containing PATH\n" + " (default PATH is '.')\n" "\n"), N_( " The shelving feature is EXPERIMENTAL. This command is likely to change\n" " in the next release, and there is no promise of backward compatibility.\n"
svn commit: r1833936 - /subversion/trunk/subversion/svn/shelf-cmd.c
Author: philip Date: Wed Jun 20 19:13:20 2018 New Revision: 1833936 URL: http://svn.apache.org/viewvc?rev=1833936=rev Log: * subversion/svn/shelf-cmd.c (svn_cl__shelf_list): Rename subpool and use it properly. Modified: subversion/trunk/subversion/svn/shelf-cmd.c Modified: subversion/trunk/subversion/svn/shelf-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/shelf-cmd.c?rev=1833936=1833935=1833936=diff == --- subversion/trunk/subversion/svn/shelf-cmd.c (original) +++ subversion/trunk/subversion/svn/shelf-cmd.c Wed Jun 20 19:13:20 2018 @@ -902,7 +902,7 @@ svn_cl__shelf_list(apr_getopt_t *os, svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state; svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; apr_array_header_t *targets = NULL; - apr_pool_t *subpool = svn_pool_create(pool); + apr_pool_t *iterpool = svn_pool_create(pool); int i; SVN_ERR(svn_cl__args_to_target_array_print_reserved(, os, @@ -915,12 +915,14 @@ svn_cl__shelf_list(apr_getopt_t *os, { const char *target = APR_ARRAY_IDX(targets, i, const char *); - svn_pool_clear(subpool); + svn_pool_clear(iterpool); SVN_ERR(shelves_list(target, opt_state->quiet, - ctx, pool)); + ctx, iterpool)); } + svn_pool_destroy(iterpool); + return SVN_NO_ERROR; }
svn commit: r1833935 - in /subversion/trunk/subversion/svn: shelf-cmd.c svn.c
Author: philip Date: Wed Jun 20 19:02:37 2018 New Revision: 1833935 URL: http://svn.apache.org/viewvc?rev=1833935=rev Log: Allow "svn x-shelf-list" from outside the working copy. * subversion/svn/shelf-cmd.c (svn_cl__shelf_list): Accept path arguments, supply default '.' path. * subversion/svn/svn.c (svn_cl__cmd_table): Update help text. Modified: subversion/trunk/subversion/svn/shelf-cmd.c subversion/trunk/subversion/svn/svn.c Modified: subversion/trunk/subversion/svn/shelf-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/shelf-cmd.c?rev=1833935=1833934=1833935=diff == --- subversion/trunk/subversion/svn/shelf-cmd.c (original) +++ subversion/trunk/subversion/svn/shelf-cmd.c Wed Jun 20 19:02:37 2018 @@ -31,6 +31,7 @@ #include "svn_hash.h" #include "svn_path.h" #include "svn_props.h" +#include "svn_pools.h" #include "svn_utf.h" #include "cl.h" @@ -900,16 +901,25 @@ svn_cl__shelf_list(apr_getopt_t *os, { svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state; svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; - const char *local_abspath; + apr_array_header_t *targets = NULL; + apr_pool_t *subpool = svn_pool_create(pool); + int i; - /* There should be no remaining arguments. */ - if (os->ind < os->argc) -return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL); + SVN_ERR(svn_cl__args_to_target_array_print_reserved(, os, + opt_state->targets, + ctx, FALSE, pool)); + /* Add "." if user passed 0 arguments */ + svn_opt_push_implicit_dot_target(targets, pool); - SVN_ERR(svn_dirent_get_absolute(_abspath, "", pool)); - SVN_ERR(shelves_list(local_abspath, - opt_state->quiet, - ctx, pool)); + for (i = 0; i < targets->nelts; ++i) +{ + const char *target = APR_ARRAY_IDX(targets, i, const char *); + + svn_pool_clear(subpool); + SVN_ERR(shelves_list(target, + opt_state->quiet, + ctx, pool)); +} return SVN_NO_ERROR; } Modified: subversion/trunk/subversion/svn/svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1833935=1833934=1833935=diff == --- subversion/trunk/subversion/svn/svn.c (original) +++ subversion/trunk/subversion/svn/svn.c Wed Jun 20 19:02:37 2018 @@ -1973,11 +1973,11 @@ const svn_opt_subcommand_desc3_t svn_cl_ { "x-shelf-list", svn_cl__shelf_list, {"shelf-list", "shelves"}, {N_( "List shelves.\n" - "usage: x-shelf-list\n" + "usage: x-shelf-list [PATH ...]\n" "\n"), N_( - " List shelves. Include the first line of any log message\n" - " and some details about the contents of the shelf, unless '-q' is\n" - " given.\n" + " List shelves for each working copy containing PATH (default is '.')\n" + " Include the first line of any log message and some details about the\n" + " contents of the shelf, unless '-q' is given.\n" "\n"), N_( " The shelving feature is EXPERIMENTAL. This command is likely to change\n" " in the next release, and there is no promise of backward compatibility.\n"
svn commit: r1833601 - in /subversion/trunk: ./ subversion/tests/afl/ subversion/tests/afl/afl-svndiff-testcase/
Author: philip Date: Fri Jun 15 14:52:05 2018 New Revision: 1833601 URL: http://svn.apache.org/viewvc?rev=1833601=rev Log: Add a fuzzing test for svn_txdelta_parse_svndiff(). No issue found so far. * build.conf: Add afl-svndiff * subversion/tests/afl/afl-svndiff.c: New. * subversion/tests/afl/afl-svndiff-testcase/: New. * subversion/tests/afl/afl-svndiff-testcase/test1: New. * subversion/tests/afl/afl-svndiff-testcase/test2: New. * subversion/tests/afl/afl-svndiff-testcase/test3: New. Added: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/ subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test1 (with props) subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test2 (with props) subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test3 (with props) subversion/trunk/subversion/tests/afl/afl-svndiff.c (with props) Modified: subversion/trunk/build.conf Modified: subversion/trunk/build.conf URL: http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1833601=1833600=1833601=diff == --- subversion/trunk/build.conf (original) +++ subversion/trunk/build.conf Fri Jun 15 14:52:05 2018 @@ -1588,7 +1588,7 @@ libs = __ALL__ conflict-data-test db-test pristine-store-test entries-compat-test op-depth-test dirent_uri-test wc-queries-test wc-test auth-test - parse-diff-test x509-test xml-test afl-x509 compress-test + parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test svndiff-stream-test [__MORE__] @@ -1749,3 +1749,12 @@ sources = afl-x509.c install = test libs = libsvn_subr apr testing = skip + +[afl-svndiff] +description = AFL fuzzer for svndiff to txdelta parser +type = exe +path = subversion/tests/afl +sources = afl-svndiff.c +install = test +libs = libsvn_delta libsvn_subr apr +testing = skip Added: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test1 URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test1?rev=1833601=auto == Binary file - no diff available. Propchange: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test1 -- svn:mime-type = application/octet-stream Added: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test2 URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test2?rev=1833601=auto == Binary file - no diff available. Propchange: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test2 -- svn:mime-type = application/octet-stream Added: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test3 URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test3?rev=1833601=auto == Binary file - no diff available. Propchange: subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/test3 -- svn:mime-type = application/octet-stream Added: subversion/trunk/subversion/tests/afl/afl-svndiff.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-svndiff.c?rev=1833601=auto == --- subversion/trunk/subversion/tests/afl/afl-svndiff.c (added) +++ subversion/trunk/subversion/tests/afl/afl-svndiff.c Fri Jun 15 14:52:05 2018 @@ -0,0 +1,85 @@ +/* + * afl-svndiff.c an American Fuzz Lop test + * + * + *Licensed to the Apache Software Foundation (ASF) under one + *or more contributor license agreements. See the NOTICE file + *distributed with this work for additional information + *regarding copyright ownership. The ASF licenses this file + *to you under the Apache License, Version 2.0 (the + *"License"); you may not use this file except in compliance + *with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + *Unless required by applicable law or agreed to in writing, + *software distributed under the License is distributed on an + *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + *KIND, either express or implied. See the License for the + *specific language governing permissions and limitations + *under the License. + * + * + */ + +/* The input data can either be a file on disk o
svn commit: r1833600 - in /subversion/trunk/subversion/tests/afl/afl-x509-testcase: test2 test3
Author: philip Date: Fri Jun 15 14:50:53 2018 New Revision: 1833600 URL: http://svn.apache.org/viewvc?rev=1833600=rev Log: Add a couple more testcases for afl-x509. No further issues found. * subversion/tests/afl/afl-x509-testcase/test2: New. * subversion/tests/afl/afl-x509-testcase/test3: New. Added: subversion/trunk/subversion/tests/afl/afl-x509-testcase/test2 (with props) subversion/trunk/subversion/tests/afl/afl-x509-testcase/test3 (with props) Added: subversion/trunk/subversion/tests/afl/afl-x509-testcase/test2 URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-x509-testcase/test2?rev=1833600=auto == Binary file - no diff available. Propchange: subversion/trunk/subversion/tests/afl/afl-x509-testcase/test2 -- svn:mime-type = application/octet-stream Added: subversion/trunk/subversion/tests/afl/afl-x509-testcase/test3 URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/afl/afl-x509-testcase/test3?rev=1833600=auto == Binary file - no diff available. Propchange: subversion/trunk/subversion/tests/afl/afl-x509-testcase/test3 -- svn:mime-type = application/octet-stream
svn commit: r1833559 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Thu Jun 14 20:00:49 2018 New Revision: 1833559 URL: http://svn.apache.org/viewvc?rev=1833559=rev Log: * STATUS: Vote for external pruning fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1833559=1833558=1833559=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Thu Jun 14 20:00:49 2018 @@ -21,7 +21,7 @@ Candidate changes: Current behaviour is inconsistent: Setting depth to 'empty' prunes externals while excluding a subtree does not. Votes: - +1: stsp + +1: stsp, philip +0: rhuijben (in concept, not reviewed) * r1830882
svn commit: r1833558 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Thu Jun 14 19:54:34 2018 New Revision: 1833558 URL: http://svn.apache.org/viewvc?rev=1833558=rev Log: * STATUS: Vote/approve serf proxy password fix. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1833558=1833557=1833558=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Thu Jun 14 19:54:34 2018 @@ -88,14 +88,6 @@ Candidate changes: +0: danielsh +1: stsp - * r1816365 - Duplicate proxy_password to the correct member of the new session, instead of - overwriting proxy_username. - Justification: - Incorrect proxy settings can block user's access to the repo - Votes: - +1: jamessan, stsp - * r1820718 Fix JavaHL SSL server trust prompting to allow accepting temporarily. Justification: @@ -148,3 +140,11 @@ Veto-blocked changes: Approved changes: = + + * r1816365 + Duplicate proxy_password to the correct member of the new session, instead of + overwriting proxy_username. + Justification: + Incorrect proxy settings can block user's access to the repo + Votes: + +1: jamessan, stsp, philip
svn commit: r1833482 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Jun 13 21:56:38 2018 New Revision: 1833482 URL: http://svn.apache.org/viewvc?rev=1833482=rev Log: * STATUS: Vote/approve swig configure fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1833482=1833481=1833482=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Jun 13 21:56:38 2018 @@ -15,14 +15,6 @@ Status of 1.10.1: Candidate changes: == - * r1829260 - Revert r1751167, since it broke use of pre-generated Swig bindings in - release builds. - Justification: - Fix build of pre-generated Swig bindings when swig is not installed - Votes: - +1: jamessan, stsp - * r1830883,r1830900,r1830901 Prune externals from excluded subtrees after 'update --set-depth=exclude' Justification: @@ -60,3 +52,11 @@ Approved changes: installed, and aids with Python 2 to 3 migration. Votes: +1: jorton, rhuijben, philip + + * r1829260 + Revert r1751167, since it broke use of pre-generated Swig bindings in + release builds. + Justification: + Fix build of pre-generated Swig bindings when swig is not installed + Votes: + +1: jamessan, stsp, philip
svn commit: r1833481 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Jun 13 21:50:23 2018 New Revision: 1833481 URL: http://svn.apache.org/viewvc?rev=1833481=rev Log: * STATUS: Vote/appprove path to python fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1833481=1833480=1833481=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Jun 13 21:50:23 2018 @@ -32,14 +32,6 @@ Candidate changes: +1: stsp +0: rhuijben (in concept, not reviewed) - * r1830885,r1831540 - Ensure consistent use of $PYTHON during build and test. - Justification: - Fixes potential build issues when multiple Python interpreters are - installed, and aids with Python 2 to 3 migration. - Votes: - +1: jorton, rhuijben - * r1830882 Fix libsvn_auth_gnome_keyring.pc when built using libsecret. Justification: @@ -60,3 +52,11 @@ Approved changes: A regression in 1.10.0. Broke 'make install-swig-rb-doc'. Votes: +1: julianfoad, stsp, philip + + * r1830885,r1831540 + Ensure consistent use of $PYTHON during build and test. + Justification: + Fixes potential build issues when multiple Python interpreters are + installed, and aids with Python 2 to 3 migration. + Votes: + +1: jorton, rhuijben, philip
svn commit: r1833480 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Jun 13 21:41:14 2018 New Revision: 1833480 URL: http://svn.apache.org/viewvc?rev=1833480=rev Log: * STATUS: Vote/appprove path to rdoc fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1833480=1833479=1833480=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Jun 13 21:41:14 2018 @@ -15,13 +15,6 @@ Status of 1.10.1: Candidate changes: == - * r1829241 - configure.ac: Fix variable name with path to rdoc, broken in r1806570. - Justification: - A regression in 1.10.0. Broke 'make install-swig-rb-doc'. - Votes: - +1: julianfoad, stsp - * r1829260 Revert r1751167, since it broke use of pre-generated Swig bindings in release builds. @@ -60,3 +53,10 @@ Veto-blocked changes: Approved changes: = + + * r1829241 + configure.ac: Fix variable name with path to rdoc, broken in r1806570. + Justification: + A regression in 1.10.0. Broke 'make install-swig-rb-doc'. + Votes: + +1: julianfoad, stsp, philip
svn commit: r1833465 - /subversion/trunk/subversion/mod_dav_svn/repos.c
Author: philip Date: Wed Jun 13 16:37:49 2018 New Revision: 1833465 URL: http://svn.apache.org/viewvc?rev=1833465=rev Log: * subversion/mod_dav_svn/repos.c (open_stream): Return an error if a non-conforming client sends a PUT before the corresponding CHECKOUT when attempting a v1 protocol commit. This is required for strict v1 compliance and does not affect the v2 protocol. Modified: subversion/trunk/subversion/mod_dav_svn/repos.c Modified: subversion/trunk/subversion/mod_dav_svn/repos.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/repos.c?rev=1833465=1833464=1833465=diff == --- subversion/trunk/subversion/mod_dav_svn/repos.c (original) +++ subversion/trunk/subversion/mod_dav_svn/repos.c Wed Jun 13 16:37:49 2018 @@ -2861,6 +2861,13 @@ open_stream(const dav_resource *resource "Resource body changes may only be made to " "working resources (at this time)."); } + if (!resource->info->root.root) +{ + return dav_svn__new_error(resource->pool, HTTP_METHOD_NOT_ALLOWED, +0, 0, +"Resource body changes may only be made to " +"checked-out resources (at this time)."); +} } /* ### TODO: Can we support range writes someday? */
svn commit: r1831114 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Mon May 7 17:32:29 2018 New Revision: 1831114 URL: http://svn.apache.org/viewvc?rev=1831114=rev Log: * STATUS: Add regression test to issue 4741 fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1831114=1831113=1831114=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Mon May 7 17:32:29 2018 @@ -59,7 +59,7 @@ Candidate changes: Votes: +1: stsp - * r1831110 + * r1831110, 1831112 Fix issue 4741: authz group cannot refer to multiple groups Justification: Regression from 1.9.
svn commit: r1831112 - /subversion/trunk/subversion/tests/libsvn_repos/authz-test.c
Author: philip Date: Mon May 7 17:30:32 2018 New Revision: 1831112 URL: http://svn.apache.org/viewvc?rev=1831112=rev Log: * subversion/tests/libsvn_repos/authz-test.c (issue_4741_groups): New, regression test for issue 4741. (test_funcs): Add new test. Modified: subversion/trunk/subversion/tests/libsvn_repos/authz-test.c Modified: subversion/trunk/subversion/tests/libsvn_repos/authz-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_repos/authz-test.c?rev=1831112=183=1831112=diff == --- subversion/trunk/subversion/tests/libsvn_repos/authz-test.c (original) +++ subversion/trunk/subversion/tests/libsvn_repos/authz-test.c Mon May 7 17:30:32 2018 @@ -444,6 +444,40 @@ test_global_rights(apr_pool_t *pool) return SVN_NO_ERROR; } +static svn_error_t * +issue_4741_groups(apr_pool_t *pool) +{ + const char rules[] = + "[groups]" NL + "g1 = userA"NL + "g2 = userB"NL + "g = @g1, @g2" NL + "" NL + "[/]" NL + "* =" NL + "@g = rw" NL + ; + + svn_stringbuf_t *buf = svn_stringbuf_create(rules, pool); + svn_stream_t *stream = svn_stream_from_stringbuf(buf, pool); + svn_authz_t *authz; + svn_boolean_t access_granted; + + SVN_ERR(svn_repos_authz_parse(, stream, NULL, pool)); + + SVN_ERR(svn_repos_authz_check_access(authz, "repo", "/", "userA", +svn_authz_write, _granted, +pool)); + SVN_TEST_ASSERT(access_granted == TRUE); + + SVN_ERR(svn_repos_authz_check_access(authz, "repo", "/", "userB", +svn_authz_write, _granted, +pool)); + SVN_TEST_ASSERT(access_granted == TRUE); + + return SVN_NO_ERROR; +} + static int max_threads = 4; static struct svn_test_descriptor_t test_funcs[] = @@ -453,6 +487,8 @@ static struct svn_test_descriptor_t test "test svn_authz__parse"), SVN_TEST_PASS2(test_global_rights, "test svn_authz__get_global_rights"), +SVN_TEST_PASS2(issue_4741_groups, + "issue 4741 groups"), SVN_TEST_NULL };
svn commit: r1831111 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Mon May 7 17:13:40 2018 New Revision: 183 URL: http://svn.apache.org/viewvc?rev=183=rev Log: * STATUS: Propose issue 4741 fix, authz group regression. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=183=1831110=183=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Mon May 7 17:13:40 2018 @@ -59,6 +59,13 @@ Candidate changes: Votes: +1: stsp + * r1831110 + Fix issue 4741: authz group cannot refer to multiple groups + Justification: + Regression from 1.9. + Votes: + +1: philip + Veto-blocked changes: =
svn propchange: r1831110 - svn:log
Author: philip Revision: 1831110 Modified property: svn:log Modified: svn:log at Mon May 7 17:08:18 2018 -- --- svn:log (original) +++ svn:log Mon May 7 17:08:18 2018 @@ -1,4 +1,6 @@ Fix issue 4741: authz group cannot refer to multiple groups. +Reported by: 黄磊 <raymond.huang{_AT_}musjoy.com> + * subversion/libsvn_repos/authz_parse.c (expand_group_callback): Do not overwrite variable when recursing.
svn commit: r1831110 - /subversion/trunk/subversion/libsvn_repos/authz_parse.c
Author: philip Date: Mon May 7 17:04:22 2018 New Revision: 1831110 URL: http://svn.apache.org/viewvc?rev=1831110=rev Log: Fix issue 4741: authz group cannot refer to multiple groups. * subversion/libsvn_repos/authz_parse.c (expand_group_callback): Do not overwrite variable when recursing. Modified: subversion/trunk/subversion/libsvn_repos/authz_parse.c Modified: subversion/trunk/subversion/libsvn_repos/authz_parse.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/authz_parse.c?rev=1831110=1831109=1831110=diff == --- subversion/trunk/subversion/libsvn_repos/authz_parse.c (original) +++ subversion/trunk/subversion/libsvn_repos/authz_parse.c Mon May 7 17:04:22 2018 @@ -1058,14 +1058,15 @@ expand_group_callback(void *baton, else { /* Recursively expand the group membership */ - members = svn_hash_gets(cb->parsed_groups, member); - if (!members) + apr_array_header_t *member_members += svn_hash_gets(cb->parsed_groups, member); + if (!member_members) return svn_error_createf( SVN_ERR_AUTHZ_INVALID_CONFIG, NULL, _("Undefined group '%s'"), member); SVN_ERR(expand_group_callback(cb, key, klen, -members, scratch_pool)); +member_members, scratch_pool)); } } return SVN_NO_ERROR;
svn commit: r1830713 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue May 1 22:22:27 2018 New Revision: 1830713 URL: http://svn.apache.org/viewvc?rev=1830713=rev Log: * STATUS: Propose --without-lz4/--without-utf8proc tweak. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1830713=1830712=1830713=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue May 1 22:22:27 2018 @@ -44,6 +44,13 @@ Candidate changes: Votes: +1: jamessan + * r1829344 + Make configure --without-lz4 or --without-utf8proc into explicit errors. + Justification: + LZ4 and UTF8PROC are not optional and configure should produce an error. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1829344 - in /subversion/trunk/build/ac-macros: lz4.m4 utf8proc.m4
Author: philip Date: Tue Apr 17 08:48:57 2018 New Revision: 1829344 URL: http://svn.apache.org/viewvc?rev=1829344=rev Log: LZ4 and UTF8PROC are build requirements and so attempts to disable them via configure options such as --without-lz4 should result in an error. * build/ac-macros/lz4.m4 (SVN_LZ4): Produce an error if disabled. * build/ac-macros/utf8proc.m4: (SVN_UTF8PROC): Produce an error if disabled. Modified: subversion/trunk/build/ac-macros/lz4.m4 subversion/trunk/build/ac-macros/utf8proc.m4 Modified: subversion/trunk/build/ac-macros/lz4.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/lz4.m4?rev=1829344=1829343=1829344=diff == --- subversion/trunk/build/ac-macros/lz4.m4 (original) +++ subversion/trunk/build/ac-macros/lz4.m4 Tue Apr 17 08:48:57 2018 @@ -39,6 +39,10 @@ AC_DEFUN(SVN_LZ4, ], [lz4_prefix=std]) + if test "$lz4_prefix" = "no"; then +dnl The user has tried to disable LZ4 +AC_MSG_ERROR([Subversion requires LZ4]) + fi if test "$lz4_prefix" = "internal"; then AC_MSG_NOTICE([using internal lz4]) AC_DEFINE([SVN_INTERNAL_LZ4], [1], Modified: subversion/trunk/build/ac-macros/utf8proc.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/utf8proc.m4?rev=1829344=1829343=1829344=diff == --- subversion/trunk/build/ac-macros/utf8proc.m4 (original) +++ subversion/trunk/build/ac-macros/utf8proc.m4 Tue Apr 17 08:48:57 2018 @@ -39,6 +39,10 @@ AC_DEFUN(SVN_UTF8PROC, ], [utf8proc_prefix=std]) + if test "$utf8proc_prefix" = "no"; then +dnl The user has tried to disable UTF8PROC +AC_MSG_ERROR([Subversion requires UTF8PROC]) + fi if test "$utf8proc_prefix" = "internal"; then AC_MSG_NOTICE([using internal utf8proc]) AC_DEFINE([SVN_INTERNAL_UTF8PROC], [1],
svn commit: r1828970 - /subversion/trunk/build/transform_sql.py
Author: philip Date: Thu Apr 12 11:04:23 2018 New Revision: 1828970 URL: http://svn.apache.org/viewvc?rev=1828970=rev Log: Remove one source of unnecessary variation between tarballs for different Subversion releases. * build/transform_sql.py (main): Avoid putting the full path to token-map.h in the "automatically generated" comment as this varies depending on the local path. The other filename in the comment is already simply a basename. Modified: subversion/trunk/build/transform_sql.py Modified: subversion/trunk/build/transform_sql.py URL: http://svn.apache.org/viewvc/subversion/trunk/build/transform_sql.py?rev=1828970=1828969=1828970=diff == --- subversion/trunk/build/transform_sql.py (original) +++ subversion/trunk/build/transform_sql.py Thu Apr 12 11:04:23 2018 @@ -274,7 +274,7 @@ def main(input_filepath, output): '/* This file is automatically generated from %s and %s.\n' ' * Do not edit this file -- edit the source and rerun gen-make.py */\n' '\n' -% (filename, token_map_filename)) +% (filename, os.path.basename(token_map_filename))) proc = Processor(os.path.dirname(input_filepath), output, var_name, token_map) proc.process_file(input)
svn commit: r26297 - in /dev/subversion: subversion-1.10.0.tar.bz2.asc subversion-1.10.0.tar.gz.asc subversion-1.10.0.zip.asc
Author: philip Date: Wed Apr 11 23:38:45 2018 New Revision: 26297 Log: Sign 1.10.0 Linux Modified: dev/subversion/subversion-1.10.0.tar.bz2.asc dev/subversion/subversion-1.10.0.tar.gz.asc dev/subversion/subversion-1.10.0.zip.asc Modified: dev/subversion/subversion-1.10.0.tar.bz2.asc == --- dev/subversion/subversion-1.10.0.tar.bz2.asc (original) +++ dev/subversion/subversion-1.10.0.tar.bz2.asc Wed Apr 11 23:38:45 2018 @@ -57,3 +57,14 @@ F+Cxr73hbIVmBSvzpdinclbtqk+ISuc2O7pLeaBK uo39u/oU5pc13FcPb0uLIiiU+ldI+sElMckrBYHIcicJGcaigVo= =npig -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlrOm/EACgkQdteI4e0a +WZwowwgAmEzpbjuEC1jJAIaltT+4d0KxZBiz24OZcL+XkXB/9FgK4E46Aics0Qnv +iHblZVxB+46MbhT3xOvHxO9sK7EV4N48IOnxciUsSn9y/h2GqS0WB7/grJpWlyzu +SsFWzcD82WhQVnAbLdjXddJbLYDSeEhz6Nlcn8T8KsQcKn7hg6O2YNf5N1UR+6df +f/zTfKbAgRFb7TxCLicwglNrjuLAcFkWVrFxmxcEzBcEmTERighpr2fY2X21pk4c +4OyOjdOkGcNY56xGONme79PWzFyXoz9Lk7zXD5GNmceQVJU1rQxlUnDlOkGR83oR +iyeoDWCFw+rfeR32q5s0T8yDrm5Y5Q== +=7+LT +-END PGP SIGNATURE- Modified: dev/subversion/subversion-1.10.0.tar.gz.asc == --- dev/subversion/subversion-1.10.0.tar.gz.asc (original) +++ dev/subversion/subversion-1.10.0.tar.gz.asc Wed Apr 11 23:38:45 2018 @@ -57,3 +57,14 @@ x2DqbpsxR4d8BbpLWwT9ZmGajQqpbQ4Yeac2Nfk5 FsTw1EDCaeKl9fI9Yv1gEBvlEtHvdSecU1ZwVir1LKmdzs8znLs= =EIpF -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlrOm/EACgkQdteI4e0a +WZxKNwf/SeOS8L+8/LIgRj1S5NXzE35FitbJQC3pJOdsmV3rxEBnfqF+i/stjLC7 ++2+p2l788nDzWavU1L+IXoxqIi5cnp7NxRBzsoFD5B+turl4kpVknfduuxDSMXg8 +1akO0s+FET3ReIpbHMYFll9Ku6/Mawo3Hgj+IBL0wgNaP1bXOYBFHM8wsif6xbQn +J6VK+Kj/fIQQrxKFrAIwE3aenNLJJO9gxbBgWl+7FGcAVnXZjj2ul+40tDMiukHN +UXN+JitTuZKBh+LQ/A2gspsfkJ0199CXth+SLchWYXVxG0q8a4Z6Ms/sTSSqrEDd +IUZe/P87mSjK7VydoMfaIkEVkPLyig== +=n+sY +-END PGP SIGNATURE- Modified: dev/subversion/subversion-1.10.0.zip.asc == --- dev/subversion/subversion-1.10.0.zip.asc (original) +++ dev/subversion/subversion-1.10.0.zip.asc Wed Apr 11 23:38:45 2018 @@ -47,3 +47,14 @@ NZiuqsP7FO0PyhRf5dY+tMrMtwLWRa9jCj4EZis6 x6TuQD1+KjfhQl4S8BTqyTQlxKPiAStzgQUW0Wjrehgj/01G6dI= =/L39 -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlrOm+oACgkQdteI4e0a +WZwE/QgApXwf3txV2yn27SMC+RkREOemUF2wtoBq/8wuPeQXbEn9/kFbJT57NAFo +4M87zJjC/C150sFAR3npapf4XJCxzW5Zh60DcnEeVJE0Up+/GDYBLrxIlocnIq0S +EL2SEnHylDCmHih+9p1HR9m5SpqvXqgC9f5m+wZiJZ1n7cKNRf3D4YWHTqHk9Jyu +bNPmARovBjAj9zRvKXAVyi/xD0v34OcVWEceC+wJJZb/9c5naQBrEsCZhZarYECi +Y0/s3pq46knIlC9CbS+fqf27IPsPOFJ9lQ6w8nsX8uIa0VMSR7llbkCMvZNkWd/t +wNoay1+Gu90uNiDXFvmRqZoiebSIyQ== +=oiQZ +-END PGP SIGNATURE-
svn commit: r1828613 - /subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
Author: philip Date: Sat Apr 7 19:20:48 2018 New Revision: 1828613 URL: http://svn.apache.org/viewvc?rev=1828613=rev Log: Fix a local refs capacity warning when unparsing externals. * subversion/bindings/javahl/native/jniwrapper/jni_list.hpp (ImmutableList::for_each): Use a local frame to avoid acccumulating local refs from constructors. Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp?rev=1828613=1828612=1828613=diff == --- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp (original) +++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp Sat Apr 7 19:20:48 2018 @@ -173,7 +173,10 @@ public: { Iterator iter(get_iterator()); while (iter.has_next()) -function(T(m_env, NativeT(iter.next(; +{ + ::Java::LocalFrame frame(m_env); + function(T(m_env, NativeT(iter.next(; +} return function; } };
svn commit: r26034 - in /dev/subversion: subversion-1.10.0-rc2.tar.bz2.asc subversion-1.10.0-rc2.tar.gz.asc
Author: philip Date: Thu Mar 29 22:12:33 2018 New Revision: 26034 Log: Sign 1.10.0-rc2 Linux Modified: dev/subversion/subversion-1.10.0-rc2.tar.bz2.asc dev/subversion/subversion-1.10.0-rc2.tar.gz.asc Modified: dev/subversion/subversion-1.10.0-rc2.tar.bz2.asc == --- dev/subversion/subversion-1.10.0-rc2.tar.bz2.asc (original) +++ dev/subversion/subversion-1.10.0-rc2.tar.bz2.asc Thu Mar 29 22:12:33 2018 @@ -15,3 +15,14 @@ YTaFr8AvR63G6KF2lakJ7l7RbFo/yV08od/SzJt8 JNuta8la83v2ENdwdo0H =Yqud -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlq9YnEACgkQdteI4e0a +WZzCegf/cmI9Vr3LPJXjK00te1Tmf1GbRrbIxSdFLONvGYGtSaxaaCGPWJ0TTEom +zl06sfuQO5yz9kJ2PvSatonKSYoTxEaG2daLfBe7K/bwWdFTgsDsyDp454IfCvtR +ZHK5x9O7L6KaigfArsX9+BG2aBFzFlGwYc6UqriwsvOaBAcdXoUwTqnarcWb32aU +KUJkQyy+x6DAQKzYtKJn9ygEvZXpgBQPhnCdTFT2PyyZaAPJlOV39SNOUHbitT0+ +jxGuRUyCn8J9ynF6cCd78mjxoSkIXuhH9n+obgNucoPGEjfib6iAH5UNE4oGRzVD +EOmd0MXP8U8x7OsBVgSkPwlp7VbK2A== +=Liy8 +-END PGP SIGNATURE- Modified: dev/subversion/subversion-1.10.0-rc2.tar.gz.asc == --- dev/subversion/subversion-1.10.0-rc2.tar.gz.asc (original) +++ dev/subversion/subversion-1.10.0-rc2.tar.gz.asc Thu Mar 29 22:12:33 2018 @@ -15,3 +15,14 @@ X00zvH5ELyji+SJQmezeUPfQ8ijJeP/jYF2nTpLG 1dpjbrsOTJ4LdwD2ie6M =jSYt -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlq9YnEACgkQdteI4e0a +WZwcCQf+OEjArSNn2aokhwHjVLc2w25AgiAxYzPsvnzX0XXQG1LsFjRLTmCEUO8n +bq8N9begwhMHp58+6KUSYyjbD0KAWQQWarIxgvO6r6WS3WukNa15WzR4rJmjAp07 +v2WT+HBBG01v4rMFHiBCOgCQMmdzvcBeLH52hgk4KBwrwHBjCtzRsKTR+Uyx/TuK +9LvHA7nWBC8XOpKa0PSvqhAIzhocAd57LLpUwPfa5PYSSD0LQ8o18TnTXEQiiGbK +mJVgODzTEeDMQxfez6gnkpIJNcqt0g4a2d+9PgE0D/FE6aLifObzXP9Zoh+diR3z +KnLNeyWz5epJg7SE3jUCngV/SoclNQ== +=RhQc +-END PGP SIGNATURE-
svn commit: r1827379 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Mar 21 02:17:03 2018 New Revision: 1827379 URL: http://svn.apache.org/viewvc?rev=1827379=rev Log: * STATUS: Update issue 4725 description. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1827379=1827378=1827379=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Mar 21 02:17:03 2018 @@ -23,9 +23,10 @@ Candidate changes: +1: philip * r1826811, r1826814, 1826877, r1826907, r1826971 - Fix issue 4725: zlib error in fsfs cache. + Fix issue 4725: FSFS block-read mode doesn't work. Justification: - Needed when svnadmin uses a FSFS cache bigger than 64MB. + Block-read is enabled automatically when svnadmin has a cache bigger + than 64MB. It can be manually enabled in mod_dav_svn/svnserve. Votes: +1: philip
svn commit: r1827201 - /subversion/site/publish/docs/release-notes/1.10.html
Author: philip Date: Mon Mar 19 13:46:06 2018 New Revision: 1827201 URL: http://svn.apache.org/viewvc?rev=1827201=rev Log: * publish/docs/release-notes/1.10.html: Add revprop caching change. Modified: subversion/site/publish/docs/release-notes/1.10.html Modified: subversion/site/publish/docs/release-notes/1.10.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/1.10.html?rev=1827201=1827200=1827201=diff == --- subversion/site/publish/docs/release-notes/1.10.html (original) +++ subversion/site/publish/docs/release-notes/1.10.html Mon Mar 19 13:46:06 2018 @@ -832,6 +832,21 @@ by default instead. title="Link to this section"> + +Revprop caching enabled + + + +Revprop caching was an optional FSFS feature in previous releases +but is now always enabled. In previous releases revprop caching could +be enabled for mod_dav_svn via the SVNCacheRevprops +directive, and for svnserve by the --cache-revprops command +line option. That directive and command line option are now silently +ignored and revprop caching is enabled for all FSFS access. + + + New --no-flush-to-disk option for svnadmin load
svn commit: r1827193 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Mon Mar 19 12:54:19 2018 New Revision: 1827193 URL: http://svn.apache.org/viewvc?rev=1827193=rev Log: * STATUS: Extend FSFS checksum nomination. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1827193=1827192=1827193=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Mon Mar 19 12:54:19 2018 @@ -126,7 +126,7 @@ Candidate changes: Votes: +1: philip, stsp - * r1826720, r1826721 + * r1826720, r1826721, 1827191 Regression test and FSFS checksum verification for issue 4722. Justification: Tests the issue 4722 fix.
svn commit: r1827192 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Mon Mar 19 12:53:08 2018 New Revision: 1827192 URL: http://svn.apache.org/viewvc?rev=1827192=rev Log: * STATUS: Extend FSFS checksum nomination. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1827192=1827191=1827192=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Mon Mar 19 12:53:08 2018 @@ -15,7 +15,7 @@ Status of 1.10.0: Candidate changes: == - * r1826720, r1826721 + * r1826720, r1826721, 1827191 Regression test and FSFS checksum test, part of issue 4722. Justification: Keeps 1.10 in sync with 1.11 and 1.9.
svn commit: r1827191 - /subversion/trunk/subversion/libsvn_fs_fs/cached_data.c
Author: philip Date: Mon Mar 19 12:50:38 2018 New Revision: 1827191 URL: http://svn.apache.org/viewvc?rev=1827191=rev Log: Followup to r1826720, raise a warning rather than an error as that gives users a better chance to extract data from a corrupt repository. * subversion/libsvn_fs_fs/cached_data.c (rep_read_contents): Warning rather than error. Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/cached_data.c?rev=1827191=1827190=1827191=diff == --- subversion/trunk/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Mon Mar 19 12:50:38 2018 @@ -2151,11 +2151,23 @@ rep_read_contents(void *baton, if (rb->current_fulltext) svn_stringbuf_appendbytes(rb->current_fulltext, buf, *len); - /* This is a FULL_READ_FN so a short read implies EOF. */ + /* This is a FULL_READ_FN so a short read implies EOF and we can + verify the length. */ rb->off += *len; if (*len < len_requested && rb->off != rb->len) -return svn_error_create(SVN_ERR_FS_CORRUPT, NULL, -_("Length mismatch while reading representation")); + { +/* A warning rather than an error to allow the data to be + retrieved when the length is wrong but the data is + present, i.e. if repository corruption has stored the wrong + expanded length. */ +svn_error_t *err = svn_error_createf(SVN_ERR_FS_CORRUPT, NULL, +_("Length mismatch while reading representation" + " expected %" APR_OFF_T_FMT + " got %" APR_OFF_T_FMT), rb->len, rb->off); + +rb->fs->warning(rb->fs->warning_baton, err); +svn_error_clear(err); + } /* Perform checksumming. We want to check the checksum as soon as the last byte of data is read, in case the caller never performs
svn commit: r1827133 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Sun Mar 18 11:01:44 2018 New Revision: 1827133 URL: http://svn.apache.org/viewvc?rev=1827133=rev Log: * STATUS: Nominate testsuite block-read support. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1827133=1827132=1827133=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Sun Mar 18 11:01:44 2018 @@ -29,6 +29,13 @@ Candidate changes: Votes: +1: philip + * r1827105, r1827114 + Add testsuite support for testing FSFS with block-read enabled. + Justification: + Allows testing the code responsible for issue 4725. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1827114 - in /subversion/trunk/subversion/tests/cmdline: davautocheck.sh svnserveautocheck.sh
Author: philip Date: Sat Mar 17 22:52:30 2018 New Revision: 1827114 URL: http://svn.apache.org/viewvc?rev=1827114=rev Log: * subversion/tests/cmdline/svnserveautocheck.sh: Document environment variables interpreted by the script. * subversion/tests/cmdline/davautocheck.sh: tweak documentation to be in a similar form to svnserveautocheck.sh Modified: subversion/trunk/subversion/tests/cmdline/davautocheck.sh subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh Modified: subversion/trunk/subversion/tests/cmdline/davautocheck.sh URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/davautocheck.sh?rev=1827114=1827113=1827114=diff == --- subversion/trunk/subversion/tests/cmdline/davautocheck.sh (original) +++ subversion/trunk/subversion/tests/cmdline/davautocheck.sh Sat Mar 17 22:52:30 2018 @@ -52,6 +52,7 @@ # Run this script with the test suite name and test number to execute just this # test: # subversion/tests/cmdline/davautocheck.sh basic 4 +# This script can also be invoked via "make davautocheck". # # If the temporary directory is not deleted, it can be reused for further # manual DAV protocol interoperation testing. HTTPD must be started by @@ -65,18 +66,19 @@ # APXS=/opt/svn/1.4.x/bin/apxs MODULE_PATH=/opt/svn/1.4.x/modules \ # subversion/tests/cmdline/davautocheck.sh # -# To prevent the server from advertising httpv2, pass USE_HTTPV1 in -# the environment. +# Other environment variables that are interpreted by this script: # -# To enable "SVNCacheRevProps on" set CACHE_REVPROPS in the environment. +# make davautocheck CACHE_REVPROPS=1 # sets SVNCacheRevProps on # -# To test over https set USE_SSL in the environment. +# make davautocheck BLOCK_READ=1 # sets SVNBlockRead on # -# To use value for "SVNPathAuthz" directive set SVN_PATH_AUTHZ with -# appropriate value in the environment. +# make davautocheck USE_SSL=1 # run over https # -# To load an MPM module for Apache 2.4 use APACHE_MPM=event in the -# environment. +# make davautocheck USE_HTTPV1=1 # sets SVNAdvertiseV2Protocol off +# +# make davautocheck APACHE_MPM=event # specifies the 2.4 MPM +# +# make davautocheck SVN_PATH_AUTHZ=short_circuit # SVNPathAuthz short_circuit # # Passing --no-tests as argv[1] will have the script start a server # but not run any tests. Passing --gdb or --lldb will do the same, and in Modified: subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh?rev=1827114=1827113=1827114=diff == --- subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh (original) +++ subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh Sat Mar 17 22:52:30 2018 @@ -31,6 +31,14 @@ # distribution; it's easiest to just run it as "make svnserveautocheck". # Like "make check", you can specify further options like # "make svnserveautocheck FS_TYPE=bdb TESTS=subversion/tests/cmdline/basic.py". +# +# Other environment variables that can be passed: +# +# make svnserveautocheck CACHE_REVPROPS=1 # run svnserve --cache-revprops +# +# make svnserveautocheck BLOCK_READ=1 # run svnserve --block-read on +# +# make svnserveautocheck THREADED=1 # run svnserve -T PYTHON=${PYTHON:-python}
svn commit: r1827105 - in /subversion/trunk/subversion/tests/cmdline: davautocheck.sh svnserveautocheck.sh
Author: philip Date: Sat Mar 17 20:48:57 2018 New Revision: 1827105 URL: http://svn.apache.org/viewvc?rev=1827105=rev Log: Add FSFS block-read support to davautocheck and svnserveautcheck. Now make davautocheck BLOCK_READ=1 make svnserveautocheck BLOCK_READ=1 will enable block-read in svnserve and apache. Block-read is necessary to trigger the issue 4725 bug. * subversion/tests/cmdline/davautocheck.sh: Move common part of Location block to a separate function, add support for BLOCK_READ env variable. * subversion/tests/cmdline/svnserveautocheck.sh: Add support for BLOCK_READ environment variable. Modified: subversion/trunk/subversion/tests/cmdline/davautocheck.sh subversion/trunk/subversion/tests/cmdline/svnserveautocheck.sh Modified: subversion/trunk/subversion/tests/cmdline/davautocheck.sh URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/davautocheck.sh?rev=1827105=1827104=1827105=diff == --- subversion/trunk/subversion/tests/cmdline/davautocheck.sh (original) +++ subversion/trunk/subversion/tests/cmdline/davautocheck.sh Sat Mar 17 20:48:57 2018 @@ -222,6 +222,11 @@ if [ ${CACHE_REVPROPS:+set} ]; then CACHE_REVPROPS_SETTING=on fi +BLOCK_READ_SETTING=off +if [ ${BLOCK_READ:+set} ]; then + BLOCK_READ_SETTING=on +fi + if [ ${MODULE_PATH:+set} ]; then MOD_DAV_SVN="$MODULE_PATH/mod_dav_svn.so" MOD_AUTHZ_SVN="$MODULE_PATH/mod_authz_svn.so" @@ -539,39 +544,41 @@ Alias /fsdavroot $ABS_BUILDDIR/subversio +__EOF__ +location_common() { +cat >> "$HTTPD_CFG" <<__EOF__ DAV svn - SVNParentPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/repositories" AuthzSVNAccessFile "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/authz" AuthType Basic AuthName "Subversion Repository" AuthUserFile $HTTPD_USERS - Require valid-user SVNAdvertiseV2Protocol ${ADVERTISE_V2_PROTOCOL} SVNCacheRevProps ${CACHE_REVPROPS_SETTING} + SVNListParentPath On + SVNBlockRead ${BLOCK_READ_SETTING} +__EOF__ +} +location_common +cat >> "$HTTPD_CFG" <<__EOF__ + SVNParentPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/repositories" + Require valid-user ${SVN_PATH_AUTHZ_LINE} - DAV svn +__EOF__ +location_common +cat >> "$HTTPD_CFG" <<__EOF__ SVNParentPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/repositories" - AuthzSVNAccessFile "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/authz" - AuthType Basic - AuthName "Subversion Repository" - AuthUserFile $HTTPD_USERS Require valid-user - SVNAdvertiseV2Protocol ${ADVERTISE_V2_PROTOCOL} - SVNCacheRevProps ${CACHE_REVPROPS_SETTING} ${SVN_PATH_AUTHZ_LINE} DontDoThatConfigFile "$HTTPD_DONTDOTHAT" - DAV svn +__EOF__ +location_common +cat >> "$HTTPD_CFG" <<__EOF__ SVNPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/local_tmp/repos" - AuthzSVNAccessFile "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/authz" - AuthType Basic - AuthName "Subversion Repository" - AuthUserFile $HTTPD_USERS Require valid-user - SVNAdvertiseV2Protocol ${ADVERTISE_V2_PROTOCOL} ${SVN_PATH_AUTHZ_LINE} @@ -594,84 +601,54 @@ Alias /fsdavroot $ABS_BUILDDIR/subversio ${SVN_PATH_AUTHZ_LINE} - DAV svn +__EOF__ +location_common +cat >> "$HTTPD_CFG" <<__EOF__ SVNParentPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/local_tmp" - AuthzSVNAccessFile "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/authz" - SVNAdvertiseV2Protocol ${ADVERTISE_V2_PROTOCOL} - SVNCacheRevProps ${CACHE_REVPROPS_SETTING} - SVNListParentPath On - AuthType Basic - AuthName "Subversion Repository" - AuthUserFile $HTTPD_USERS Require valid-user Satisfy Any ${SVN_PATH_AUTHZ_LINE} - DAV svn +__EOF__ +location_common +cat >> "$HTTPD_CFG" <<__EOF__ SVNParentPath "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/local_tmp" - AuthzSVNAccessFile "$ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/authz" - SVNAdvertiseV2Protocol ${ADVERTISE_V2_PROTOCOL} - SVNCacheRevProps ${CACHE_REVPROPS_SETTING} - SVNListParentPath On - AuthType Basic - AuthName "Subversion Repository" - AuthUserFile $HTTPD_USERS Require valid-user AuthzSVNNoAuthWhenAnonymousAllowed On SVNPathAuthz On - DAV svn +__EOF__ +location_commo
svn commit: r1826972 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Mar 16 11:17:43 2018 New Revision: 1826972 URL: http://svn.apache.org/viewvc?rev=1826972=rev Log: * STATUS: Update FSFS cache fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826972=1826971=1826972=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Mar 16 11:17:43 2018 @@ -54,7 +54,7 @@ Candidate changes: Votes: +1: kotkov, philip - * r1826811, r1826814, 1826877, r1826907 + * r1826811, r1826814, 1826877, r1826907, r1826971 Fix issue 4725: zlib error in fsfs cache. Justification: Needed when svnadmin uses a FSFS cache bigger than 64MB.
svn commit: r1826971 - /subversion/trunk/subversion/libsvn_fs_fs/cached_data.c
Author: philip Date: Fri Mar 16 11:15:23 2018 New Revision: 1826971 URL: http://svn.apache.org/viewvc?rev=1826971=rev Log: * subversion/libsvn_fs_fs/cached_data.c (cache_windows): Add missing SVN_ERR. Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/cached_data.c?rev=1826971=1826970=1826971=diff == --- subversion/trunk/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Fri Mar 16 11:15:23 2018 @@ -3271,7 +3271,7 @@ cache_windows(svn_fs_t *fs, { apr_pool_t *iterpool = svn_pool_create(pool); - auto_read_diff_version(rs, iterpool); + SVN_ERR(auto_read_diff_version(rs, iterpool)); while (rs->current < rs->size) {
svn commit: r1826912 - /subversion/site/publish/mailing-lists.html
Author: philip Date: Fri Mar 16 01:39:21 2018 New Revision: 1826912 URL: http://svn.apache.org/viewvc?rev=1826912=rev Log: * publish/mailing-list.html: Add new Apache links, remove broken mbox links. Modified: subversion/site/publish/mailing-lists.html Modified: subversion/site/publish/mailing-lists.html URL: http://svn.apache.org/viewvc/subversion/site/publish/mailing-lists.html?rev=1826912=1826911=1826912=diff == --- subversion/site/publish/mailing-lists.html (original) +++ subversion/site/publish/mailing-lists.html Fri Mar 16 01:39:21 2018 @@ -145,12 +145,13 @@ delay for your post to appear (see below Archives: https://mail-archives.apache.org/mod_mbox/subversion-users/; - >mail-archives.apache.org - (mbox files) + >mail-archives.apache.org + https://lists.apache.org/list.html?us...@subversion.apache.org; + >lists.apache.org (searchable) https://svn.haxx.se/users/; >svn.haxx.se news.gmane.org (NNTP/SSL) + >news.gmane.org (NNTP/SSL) @@ -206,12 +207,13 @@ delay for your post to appear (see below Archives: https://mail-archives.apache.org/mod_mbox/subversion-dev/; - >mail-archives.apache.org - (mbox files) + >mail-archives.apache.org + https://lists.apache.org/list.html?d...@subversion.apache.org; + >lists.apache.org (searchable) https://svn.haxx.se/dev/; >svn.haxx.se news.gmane.org (NNTP/SSL) + >news.gmane.org (NNTP/SSL) @@ -247,8 +249,9 @@ delay for your post to appear (see below Archives: https://mail-archives.apache.org/mod_mbox/subversion-commits/; - >mail-archives.apache.org - (mbox files) + >mail-archives.apache.org + https://lists.apache.org/list.html?commits@subversion.apache.org; + >lists.apache.org (searchable) @@ -286,8 +289,9 @@ delay for your post to appear (see below Archives: https://mail-archives.apache.org/mod_mbox/subversion-announce/; - >mail-archives.apache.org - (mbox files) + >mail-archives.apache.org + https://lists.apache.org/list.html?annou...@subversion.apache.org; + >lists.apache.org (searchable) @@ -334,8 +338,9 @@ delay for your post to appear (see below Archives: https://mail-archives.apache.org/mod_mbox/subversion-notifications/; - >mail-archives.apache.org - (mbox files) + >mail-archives.apache.org + https://lists.apache.org/list.html?notificati...@subversion.apache.org; + >lists.apache.org (searchable)
svn commit: r1826910 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Mar 16 00:02:50 2018 New Revision: 1826910 URL: http://svn.apache.org/viewvc?rev=1826910=rev Log: * STATUS: Update FSFS cache fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826910=1826909=1826910=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Mar 16 00:02:50 2018 @@ -54,7 +54,7 @@ Candidate changes: Votes: +1: kotkov, philip - * r1826811, r1826814, 1826877 + * r1826811, r1826814, 1826877, r1826907 Fix issue 4725: zlib error in fsfs cache. Justification: Needed when svnadmin uses a FSFS cache bigger than 64MB.
svn commit: r1826907 - /subversion/trunk/subversion/libsvn_fs_fs/cached_data.c
Author: philip Date: Fri Mar 16 00:00:23 2018 New Revision: 1826907 URL: http://svn.apache.org/viewvc?rev=1826907=rev Log: Fix issue 4727 which is a bug in the fix for issue 4725. * subversion/libsvn_fs_fs/cached_data.c (cache_windows): Move auto_read_diff_version() call before the loop. Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/cached_data.c?rev=1826907=1826906=1826907=diff == --- subversion/trunk/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Fri Mar 16 00:00:23 2018 @@ -3270,6 +3270,9 @@ cache_windows(svn_fs_t *fs, apr_pool_t *pool) { apr_pool_t *iterpool = svn_pool_create(pool); + + auto_read_diff_version(rs, iterpool); + while (rs->current < rs->size) { apr_off_t end_offset; @@ -3310,8 +3313,6 @@ cache_windows(svn_fs_t *fs, apr_size_t window_len; char *buf; - auto_read_diff_version(rs, iterpool); - /* navigate to the current window */ SVN_ERR(rs_aligned_seek(rs, NULL, start_offset, iterpool)); SVN_ERR(svn_txdelta__read_raw_window_len(_len,
svn commit: r1826878 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Thu Mar 15 22:05:12 2018 New Revision: 1826878 URL: http://svn.apache.org/viewvc?rev=1826878=rev Log: * STATUS: Propose issue 4725 fix, zlib error in FSFS cache. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826878=1826877=1826878=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Thu Mar 15 22:05:12 2018 @@ -54,6 +54,13 @@ Candidate changes: Votes: +1: kotkov, philip + * r1826811, r1826814, 1826877 + Fix issue 4725: zlib error in fsfs cache. + Justification: + Needed when svnadmin uses a FSFS cache bigger than 64MB. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1826877 - in /subversion/trunk/subversion: libsvn_fs_fs/cached_data.c libsvn_fs_fs/temp_serializer.h tests/cmdline/svnadmin_tests.py
Author: philip Date: Thu Mar 15 21:58:57 2018 New Revision: 1826877 URL: http://svn.apache.org/viewvc?rev=1826877=rev Log: Fix issue 4725: zlib error in fsfs cache. Make the raw window cache store the svndiff version of the data so that the version is available when the data is retreived from the cache. * subversion/libsvn_fs_fs/temp_serializer.h (svn_fs_fs__raw_cached_window_t): Add svndiff version member. * subversion/libsvn_fs_fs/cached_data.c (parse_raw_window): Use version retrieved from cache. (init_rep_state): Initialize version to the unknown value. (cache_windows): Read version, store in cache. * subversion/tests/cmdline/svnadmin_tests.py (load_issue4725): Remove XFail marking. Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.h subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/cached_data.c?rev=1826877=1826876=1826877=diff == --- subversion/trunk/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Thu Mar 15 21:58:57 2018 @@ -1268,7 +1268,7 @@ parse_raw_window(void **out, stream = svn_stream_from_string(_window, result_pool); /* parse it */ - SVN_ERR(svn_txdelta_read_svndiff_window(>window, stream, 1, + SVN_ERR(svn_txdelta_read_svndiff_window(>window, stream, window->ver, result_pool)); /* complete the window and return it */ @@ -3212,7 +3212,7 @@ init_rep_state(rep_state_t *rs, rs->start = entry->offset + rs->header_size; rs->current = rep_header->type == svn_fs_fs__rep_plain ? 0 : 4; rs->size = entry->size - rep_header->header_size - 7; - rs->ver = 1; + rs->ver = -1; rs->chunk_index = 0; rs->raw_window_cache = ffd->raw_window_cache; rs->window_cache = ffd->txdelta_window_cache; @@ -3310,6 +3310,8 @@ cache_windows(svn_fs_t *fs, apr_size_t window_len; char *buf; + auto_read_diff_version(rs, iterpool); + /* navigate to the current window */ SVN_ERR(rs_aligned_seek(rs, NULL, start_offset, iterpool)); SVN_ERR(svn_txdelta__read_raw_window_len(_len, @@ -3330,6 +3332,7 @@ cache_windows(svn_fs_t *fs, window.end_offset = rs->current; window.window.len = window_len; window.window.data = buf; + window.ver = rs->ver; /* cache the window now */ SVN_ERR(svn_cache__set(rs->raw_window_cache, , , Modified: subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.h?rev=1826877=1826876=1826877=diff == --- subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.h (original) +++ subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.h Thu Mar 15 21:58:57 2018 @@ -60,6 +60,9 @@ typedef struct /* the offset within the representation right after reading the window */ apr_off_t end_offset; + + /* svndiff version */ + int ver; } svn_fs_fs__raw_cached_window_t; /** Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py?rev=1826877=1826876=1826877=diff == --- subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Thu Mar 15 21:58:57 2018 @@ -3802,7 +3802,6 @@ def dump_invalid_filtering_option(sbox): '--include', '/A/B/E', sbox.repo_dir) -@XFail(svntest.main.is_fs_type_fsfs) @Issue(4725) def load_issue4725(sbox): """load that triggers issue 4725"""
svn commit: r1826814 - /subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py
Author: philip Date: Thu Mar 15 13:30:23 2018 New Revision: 1826814 URL: http://svn.apache.org/viewvc?rev=1826814=rev Log: * subversion/tests/cmdline/svnadmin_tests.py (load_issue4725): Reduce memory request, no need for 1GB. Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py?rev=1826814=1826813=1826814=diff == --- subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Thu Mar 15 13:30:23 2018 @@ -3823,7 +3823,7 @@ def load_issue4725(sbox): sbox2 = sbox.clone_dependent() sbox2.build(create_wc=False, empty=True) - load_and_verify_dumpstream(sbox2, None, [], None, False, dump, '-M1000') + load_and_verify_dumpstream(sbox2, None, [], None, False, dump, '-M100') # Run the tests
svn commit: r1826811 - /subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py
Author: philip Date: Thu Mar 15 13:17:19 2018 New Revision: 1826811 URL: http://svn.apache.org/viewvc?rev=1826811=rev Log: Add a regression test for issue 4725: svnadmin load error due to FSFS cache. * subversion/tests/cmdline/svnadmin_tests.py (load_issue4725): New. (test_list): Add load_issue4725, mark as XFail for FSFS. Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py?rev=1826811=1826810=1826811=diff == --- subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Thu Mar 15 13:17:19 2018 @@ -3802,6 +3802,29 @@ def dump_invalid_filtering_option(sbox): '--include', '/A/B/E', sbox.repo_dir) +@XFail(svntest.main.is_fs_type_fsfs) +@Issue(4725) +def load_issue4725(sbox): + """load that triggers issue 4725""" + + sbox.build(empty=True) + + sbox.simple_mkdir('subversion') + sbox.simple_commit() + sbox.simple_mkdir('subversion/trunk') + sbox.simple_mkdir('subversion/branches') + sbox.simple_commit() + sbox.simple_mkdir('subversion/trunk/src') + sbox.simple_commit() + + _, dump, _ = svntest.actions.run_and_verify_svnadmin(None, [], + 'dump', '-q', + sbox.repo_dir) + + sbox2 = sbox.clone_dependent() + sbox2.build(create_wc=False, empty=True) + load_and_verify_dumpstream(sbox2, None, [], None, False, dump, '-M1000') + # Run the tests @@ -3874,7 +3897,8 @@ test_list = [ None, dump_exclude_by_pattern, dump_include_by_pattern, dump_exclude_all_rev_changes, - dump_invalid_filtering_option + dump_invalid_filtering_option, + load_issue4725, ] if __name__ == '__main__':
svn commit: r1826761 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Mar 14 23:48:05 2018 New Revision: 1826761 URL: http://svn.apache.org/viewvc?rev=1826761=rev Log: * STATUS: Vote for svn_txdelta_to_svndiff_stream fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826761=1826760=1826761=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Mar 14 23:48:05 2018 @@ -52,7 +52,7 @@ Candidate changes: A bug that can cause failing commits over http://, regression introduced in 1.10. Votes: - +1: kotkov + +1: kotkov, philip Veto-blocked changes: =
svn commit: r1826726 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Wed Mar 14 14:59:29 2018 New Revision: 1826726 URL: http://svn.apache.org/viewvc?rev=1826726=rev Log: * STATUS: Separate the issue 4722 nominations, only the first is on the branch. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1826726=1826725=1826726=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Wed Mar 14 14:59:29 2018 @@ -118,14 +118,20 @@ Candidate changes: Votes: +1: julianfoad, stsp - * r1826272, r1826720, r1826721 + * r1826272 Fix issue 4722: commits that fail when a file DELTA is a multiple of 16K. Justification: Commits fail with a false "Filesystem is corrupt" error. Branch: ^/subversion/branches/1.9.x-issue4722 Votes: + +1: philip, stsp + + * r1826720, r1826721 + Regression test and FSFS checksum verification for issue 4722. + Justification: + Tests the issue 4722 fix. + Votes: +1: philip - +1: stsp (r1826272 only) Veto-blocked changes: =
svn commit: r1826724 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Mar 14 14:34:12 2018 New Revision: 1826724 URL: http://svn.apache.org/viewvc?rev=1826724=rev Log: * STATUS: Nominate testing for issue 4722. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826724=1826723=1826724=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Mar 14 14:34:12 2018 @@ -38,6 +38,13 @@ Candidate changes: Votes: +1: danielsh, jamessan + * r1826720, r1826721 + Regression test and FSFS checksum test, part of issue 4722. + Justification: + Keeps 1.10 in sync with 1.11 and 1.9. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1826723 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Wed Mar 14 14:33:37 2018 New Revision: 1826723 URL: http://svn.apache.org/viewvc?rev=1826723=rev Log: * STATUS: Nominate additional testing for issue 4722. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1826723=1826722=1826723=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Wed Mar 14 14:33:37 2018 @@ -118,13 +118,14 @@ Candidate changes: Votes: +1: julianfoad, stsp - * r1826272 + * r1826272, r1826720, r1826721 Fix issue 4722: commits that fail when a file DELTA is a multiple of 16K. Justification: Commits fail with a false "Filesystem is corrupt" error. Branch: ^/subversion/branches/1.9.x-issue4722 Votes: - +1: philip, stsp + +1: philip + +1: stsp (r1826272 only) Veto-blocked changes: =
svn commit: r1826721 - /subversion/trunk/subversion/tests/cmdline/commit_tests.py
Author: philip Date: Wed Mar 14 14:26:04 2018 New Revision: 1826721 URL: http://svn.apache.org/viewvc?rev=1826721=rev Log: Add a regression test for issue 4722, a commit checksum fail in 1.9.7. * subversion/tests/cmdline/commit_tests.py (commit_issue4722_checksum): New. (test_list): Add new test. Modified: subversion/trunk/subversion/tests/cmdline/commit_tests.py Modified: subversion/trunk/subversion/tests/cmdline/commit_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/commit_tests.py?rev=1826721=1826720=1826721=diff == --- subversion/trunk/subversion/tests/cmdline/commit_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/commit_tests.py Wed Mar 14 14:26:04 2018 @@ -3113,6 +3113,39 @@ def commit_xml(sbox): sbox.simple_append('index.html', '', True) sbox.simple_commit() +@Issue(4722) +def commit_issue4722_checksum(sbox): + "commit that triggered checksum failure" + + sbox.build() + + # This bug only ever affected FSFS in 1.9.7. The test could be + # considered a bit "fragile" as any change to the on-disk + # representation may well make it pass trivially. On the other hand + # it should still pass irrespective of that representation, and for + # all other repository types. + + # Enough data to allow the bug to occur + with open(sbox.ospath('f'), 'w') as fp: +for i in range(0, 2001): + fp.write('abcdefghijklmnopqrstuvwxyz') + sbox.simple_add('f') + sbox.simple_commit() + + # Just the right data to trigger the bug + with open(sbox.ospath('f'), 'w') as fp: +for i in range(0, 8713): + fp.write(str(i)) +fp.write("1") + sbox.simple_commit() + + # Trigger deduplication which is when the bug occurred + with open(sbox.ospath('f'), 'w') as fp: +for i in range(0, 2001): + fp.write('abcdefghijklmnopqrstuvwxyz') + sbox.simple_commit() + + # Run the tests @@ -3190,6 +3223,7 @@ test_list = [ None, commit_mergeinfo_ood, mkdir_conflict_proper_error, commit_xml, + commit_issue4722_checksum, ] if __name__ == '__main__':
svn commit: r1826720 - /subversion/trunk/subversion/libsvn_fs_fs/cached_data.c
Author: philip Date: Wed Mar 14 14:24:36 2018 New Revision: 1826720 URL: http://svn.apache.org/viewvc?rev=1826720=rev Log: Add a checksum length verification to the FSFS checksum code. This may have prevented the issue 4722 checksum bug by making the problem much more visible: it would have failed lots of successful commits that only succeeded by ignoring the length error. * subversion/libsvn_fs_fs/cached_data.c (rep_read_contents): This is now a READ_FULL_FN for svn_stream_t and a short read is EOF at which point the length can be checked. When originally written the code was a READ_FN and a short read was not necessarily EOF. Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Modified: subversion/trunk/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/cached_data.c?rev=1826720=1826719=1826720=diff == --- subversion/trunk/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/cached_data.c Wed Mar 14 14:24:36 2018 @@ -2103,13 +2103,14 @@ skip_contents(struct rep_read_baton *bat /* BATON is of type `rep_read_baton'; read the next *LEN bytes of the representation and store them in *BUF. Sum as we read and verify - the MD5 sum at the end. */ + the MD5 sum at the end. This is a READ_FULL_FN for svn_stream_t. */ static svn_error_t * rep_read_contents(void *baton, char *buf, apr_size_t *len) { struct rep_read_baton *rb = baton; + apr_size_t len_requested = *len; /* Get data from the fulltext cache for as long as we can. */ if (rb->fulltext_cache) @@ -2150,6 +2151,12 @@ rep_read_contents(void *baton, if (rb->current_fulltext) svn_stringbuf_appendbytes(rb->current_fulltext, buf, *len); + /* This is a FULL_READ_FN so a short read implies EOF. */ + rb->off += *len; + if (*len < len_requested && rb->off != rb->len) +return svn_error_create(SVN_ERR_FS_CORRUPT, NULL, +_("Length mismatch while reading representation")); + /* Perform checksumming. We want to check the checksum as soon as the last byte of data is read, in case the caller never performs a short read, but we don't want to finalize the MD5 context @@ -2157,7 +2164,6 @@ rep_read_contents(void *baton, if (!rb->checksum_finalized) { SVN_ERR(svn_checksum_update(rb->md5_checksum_ctx, buf, *len)); - rb->off += *len; if (rb->off == rb->len) { svn_checksum_t *md5_checksum;
svn commit: r1826274 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Thu Mar 8 20:35:49 2018 New Revision: 1826274 URL: http://svn.apache.org/viewvc?rev=1826274=rev Log: * STATUS: Propose issue 4722 fix. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1826274=1826273=1826274=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Thu Mar 8 20:35:49 2018 @@ -118,6 +118,14 @@ Candidate changes: Votes: +1: julianfoad, stsp + * r1826272 + Fix issue 4722: commits that fail when a file DELTA is a multiple of 16K. + Justification: + Commits fail with a false "Filesystem is corrupt" error. + Branch: ^/subversion/branches/1.9.x-issue4722 + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1826272 - /subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c
Author: philip Date: Thu Mar 8 20:29:21 2018 New Revision: 1826272 URL: http://svn.apache.org/viewvc?rev=1826272=rev Log: On 1.9.x-issue4722 branch: fix the commit checksum failure. * subversion/libsvn_fs_fs/cached_data.c (svn_fs_fs__get_contents_from_file): Set expanded_size in rep. Found by: Myria <myriachan{_AT_}gmail.com> Modified: subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c Modified: subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c?rev=1826272=1826271=1826272=diff == --- subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c (original) +++ subversion/branches/1.9.x-issue4722/subversion/libsvn_fs_fs/cached_data.c Thu Mar 8 20:29:21 2018 @@ -2199,6 +2199,7 @@ svn_fs_fs__get_contents_from_file(svn_st next_rep.revision = rh->base_revision; next_rep.item_index = rh->base_item_index; next_rep.size = rh->base_length; + next_rep.expanded_size = rep->expanded_size; svn_fs_fs__id_txn_reset(_rep.txn_id); SVN_ERR(build_rep_list(>rs_list, >base_window,
svn commit: r1826271 - /subversion/branches/1.9.x-issue4722/
Author: philip Date: Thu Mar 8 20:28:08 2018 New Revision: 1826271 URL: http://svn.apache.org/viewvc?rev=1826271=rev Log: Create 1.9.x branch for issue 4722. Added: subversion/branches/1.9.x-issue4722/ (props changed) - copied from r1826269, subversion/branches/1.9.x/ Propchange: subversion/branches/1.9.x-issue4722/ -- --- bugtraq:logregex (added) +++ bugtraq:logregex Thu Mar 8 20:28:08 2018 @@ -0,0 +1,2 @@ +[Ii]ssues?:?(\s*(,|and)?\s*#\d+)+ +(\d+) Propchange: subversion/branches/1.9.x-issue4722/ -- bugtraq:url = http://subversion.tigris.org/issues/show_bug.cgi?id=%BUGID% Propchange: subversion/branches/1.9.x-issue4722/ -- --- svn:auto-props (added) +++ svn:auto-props Thu Mar 8 20:28:08 2018 @@ -0,0 +1,13 @@ +*.c = svn:eol-style=native +*.cpp = svn:eol-style=native +*.h = svn:eol-style=native +*.hpp = svn:eol-style=native +*.java = svn:eol-style=native +*.py = svn:eol-style=native +*.pl = svn:eol-style=native +*.rb = svn:eol-style=native +*.sql = svn:eol-style=native +*.txt = svn:eol-style=native +README = svn:eol-style=native +BRANCH-README = svn:eol-style=native +STATUS = svn:eol-style=native Propchange: subversion/branches/1.9.x-issue4722/ -- --- svn:ignore (added) +++ svn:ignore Thu Mar 8 20:28:08 2018 @@ -0,0 +1,57 @@ +ChangeLog* +Makefile +config.cache +config.log +config.nice +config.status +configure +libtool +.gdb_history +.swig_checked +*.orig +*.rej +TAGS +tags +neon +build-outputs.mk +autogen-standalone.mk +autom4te.cache +gen-make.opts +tests.log* +fails.log* +db4-win32 +db +*.o +*~ +.*~ +apr +apr-util +apr-iconv +Release +Debug +ipch +subversion_msvc.dsw +subversion_msvc.ncb +subversion_msvc.opt +subversion_msvc.plg +subversion_vcnet.sln +subversion_vcnet.ncb +subversion_vcnet.suo +subversion_vcnet.v11.suo +subversion_vcnet.sdf +subversion_vcnet.opensdf +mkmf.log +.project +.classpath +.cdtproject +.settings +.cproject +zlib +sqlite-amalgamation +serf +gmock-fused +.git +.gitignore +compile_commands.json +.kdev4 +*.kdev4 Propchange: subversion/branches/1.9.x-issue4722/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Thu Mar 8 20:28:08 2018 @@ -0,0 +1,112 @@ +/subversion/branches/1.10-cache-improvements:1675666-1677522,1679679,1679681,1679859 +/subversion/branches/1.5.x-r30215:870312 +/subversion/branches/1.7.x-fs-verify:1146708,1161180 +/subversion/branches/1.9-cache-improvements:1678948-1679863 +/subversion/branches/1.9.x-fix-fsfs:1796142-1796469 +/subversion/branches/1.9.x-fsfs-pack-fixes:1759183-1770158 +/subversion/branches/1.9.x-fsfs-rep-comparison:1717869-1739708 +/subversion/branches/1.9.x-r1664664:1674265-1674433 +/subversion/branches/1.9.x-r1667233:1673207-1673638 +/subversion/branches/1.9.x-r1700215:1701365-1703825 +/subversion/branches/1.9.x-r1703581:1703613-1713071 +/subversion/branches/1.9.x-r1706428:1711251-1716560 +/subversion/branches/1.9.x-r1721488:1723204-1764572,1764631-1764637 +/subversion/branches/1.9.x-r1725180:1727683-1739396 +/subversion/branches/1.9.x-r1757529-group:1757739-1757935 +/subversion/branches/1.9.x-r1758224-group:1758407-1758693 +/subversion/branches/1.9.x-r1785053:1786519-1794526 +/subversion/branches/1.9.x-r1795116:1795117-1814247 +/subversion/branches/1.9.x-r1802316:1802343-1803754 +/subversion/branches/1.9.x-r1808955:1808957-1820522 +/subversion/branches/1.9.x-rep-cache-db-fixes:1743185-1757778 +/subversion/branches/1.9.x-strict-rep-sharing:1786535-1795992 +/subversion/branches/10Gb:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955 +/subversion/branches/atomic-revprop:965046-1000689 +/subversion/branches/authzperf:1615360 +/subversion/branches/auto-props-sdc:1384106-1401643 +/subversion/branches/bdb-reverse-deltas:872050-872529 +/subversion/branches/cache-server:1458643-1476567 +/subversion/branches/diff-callbacks3:870059-870761 +/subversion/branches/diff-optimizations:1031270-1037352 +/subversion/branches/diff-optimizations-bytes:1037353-1067789 +/subversion/branches/dont-save-plaintext-passwords-by-default:870728-871118 +/subversion/branches/double-delete:870511-872970 +/subversion/branches/dump-load-cross-check:1654853-1657295 +/subversion/branches/ev2-export:1325914,1332738,1413107 +/subversion/branches/explore-wc:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795
svn commit: r1826020 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Mar 6 18:13:22 2018 New Revision: 1826020 URL: http://svn.apache.org/viewvc?rev=1826020=rev Log: * STATUS: Vote for macOS lz4 warning fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826020=1826019=1826020=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Mar 6 18:13:22 2018 @@ -21,7 +21,7 @@ Candidate changes: Justification: The core build should be warning-free. Votes: - +1: brane + +1: brane, philip * r1825709, r1825711 Don't offer conflict resolution options for 'local move vs incoming move'.
svn commit: r1826015 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Mar 6 17:56:26 2018 New Revision: 1826015 URL: http://svn.apache.org/viewvc?rev=1826015=rev Log: * STATUS: Vote for UTF8 test fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826015=1826014=1826015=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Mar 6 17:56:26 2018 @@ -37,7 +37,7 @@ Candidate changes: Justification: Fixes test failure Votes: - +1: jamessan + +1: jamessan, philip * r1825979 Minor clarification to docstring.
svn commit: r1826009 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Mar 6 17:44:13 2018 New Revision: 1826009 URL: http://svn.apache.org/viewvc?rev=1826009=rev Log: * STATUS: Vote for move conflict fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826009=1826008=1826009=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Mar 6 17:44:13 2018 @@ -29,7 +29,7 @@ Candidate changes: The resolver does not support 'move vs move' resolution yet. The current behaviour is misleading. Votes: - +1: stsp + +1: stsp, philip * r1825783, r1825787, r1825788 Ensure test data is correctly aligned before calling
svn commit: r1826004 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Mar 6 17:32:12 2018 New Revision: 1826004 URL: http://svn.apache.org/viewvc?rev=1826004=rev Log: * STATUS: Vote for macOS version fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1826004=1826003=1826004=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Mar 6 17:32:12 2018 @@ -31,13 +31,6 @@ Candidate changes: Votes: +1: stsp - * r1825721 - Convert macOS versions 10.13.x to release name "High Sierra". - Justication: - Cosmetic correctness of 'svn --version --verbose' output. - Votes: - +1: brane, stsp - * r1825783, r1825787, r1825788 Ensure test data is correctly aligned before calling svn_utf__utf{16,32}_to_utf8 @@ -58,3 +51,10 @@ Veto-blocked changes: Approved changes: = + + * r1825721 + Convert macOS versions 10.13.x to release name "High Sierra". + Justication: + Cosmetic correctness of 'svn --version --verbose' output. + Votes: + +1: brane, stsp, philip
svn commit: r1825779 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Sat Mar 3 17:12:05 2018 New Revision: 1825779 URL: http://svn.apache.org/viewvc?rev=1825779=rev Log: * STATUS: Nominate mod_authz_svn revert. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1825779=1825778=1825779=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Sat Mar 3 17:12:05 2018 @@ -38,13 +38,14 @@ Candidate changes: Votes: +1: brane, stsp - * r1825736 + * r1825736, r1825778 Fix a memory usage problem in mod_authz_svn. Justifiation: Server uses too much memory if authz is enabled. See https://svn.haxx.se/dev/archive-2018-03/0010.shtml Votes: - +1: stsp + +1: philip + +1: stsp (without r1825778) Veto-blocked changes: =
svn commit: r1825778 - /subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c
Author: philip Date: Sat Mar 3 16:58:13 2018 New Revision: 1825778 URL: http://svn.apache.org/viewvc?rev=1825778=rev Log: Revert r1825736, r1779188 and r1778923. This reverts to caching the authz file for the duration of the connection in mod_authz_svn. This was due to performance issues: https://mail-archives.apache.org/mod_mbox/subversion-dev/201803.mbox/%3CCAP_GPNii50yPBMNogDYgrgk9%3DpUs802YAjM3to2g5s7R21GX5g%40mail.gmail.com%3E * subversion/mod_authz_svn/mod_authz_svn.c (get_access_conf, req_check_access, subreq_bypass2): Revert. Modified: subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c Modified: subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c?rev=1825778=1825777=1825778=diff == --- subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c (original) +++ subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c Sat Mar 3 16:58:13 2018 @@ -395,17 +395,18 @@ resolve_repos_relative_url(const char ** } /* - * Get the svn_authz_t for this request. + * Get the, possibly cached, svn_authz_t for this request. */ static svn_authz_t * get_access_conf(request_rec *r, authz_svn_config_rec *conf, -apr_pool_t *result_pool, apr_pool_t *scratch_pool) { + const char *cache_key = NULL; const char *access_file; const char *groups_file; const char *repos_path; const char *repos_url = NULL; + void *user_data = NULL; svn_authz_t *access_conf = NULL; svn_error_t *svn_err = SVN_NO_ERROR; dav_error *dav_err; @@ -465,19 +466,31 @@ get_access_conf(request_rec *r, authz_sv "Path to groups file is %s", groups_file); } - svn_err = svn_repos_authz_read3(_conf, - access_file, groups_file, - TRUE, NULL, - result_pool, scratch_pool); - - if (svn_err) + cache_key = apr_pstrcat(scratch_pool, "mod_authz_svn:", + access_file, groups_file, SVN_VA_NULL); + apr_pool_userdata_get(_data, cache_key, r->connection->pool); + access_conf = user_data; + if (access_conf == NULL) { - log_svn_error(APLOG_MARK, r, -"Failed to load the mod_authz_svn config:", -svn_err, scratch_pool); - access_conf = NULL; -} + svn_err = svn_repos_authz_read3(_conf, access_file, + groups_file, TRUE, NULL, + r->connection->pool, + scratch_pool); + if (svn_err) +{ + log_svn_error(APLOG_MARK, r, +"Failed to load the mod_authz_svn config:", +svn_err, scratch_pool); + access_conf = NULL; +} + else +{ + /* Cache the open repos for the next request on this connection */ + apr_pool_userdata_set(access_conf, cache_key, +NULL, r->connection->pool); +} +} return access_conf; } @@ -688,7 +701,7 @@ req_check_access(request_rec *r, } /* Retrieve/cache authorization file */ - access_conf = get_access_conf(r,conf, r->pool, r->pool); + access_conf = get_access_conf(r,conf, r->pool); if (access_conf == NULL) return DECLINED; @@ -805,7 +818,7 @@ subreq_bypass2(request_rec *r, } /* Retrieve authorization file */ - access_conf = get_access_conf(r, conf, scratch_pool, scratch_pool); + access_conf = get_access_conf(r, conf, scratch_pool); if (access_conf == NULL) return HTTP_FORBIDDEN;
svn commit: r1825556 - /subversion/site/publish/docs/community-guide/debugging.part.html
Author: philip Date: Wed Feb 28 12:13:40 2018 New Revision: 1825556 URL: http://svn.apache.org/viewvc?rev=1825556=rev Log: * publish/docs/community-guide/debugging.part.html (net-trace-neon): Remove, neon is no longer supported. Modified: subversion/site/publish/docs/community-guide/debugging.part.html Modified: subversion/site/publish/docs/community-guide/debugging.part.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/community-guide/debugging.part.html?rev=1825556=182=1825556=diff == --- subversion/site/publish/docs/community-guide/debugging.part.html (original) +++ subversion/site/publish/docs/community-guide/debugging.part.html Wed Feb 28 12:13:40 2018 @@ -299,23 +299,6 @@ when Wireshark was called Ethereal). - -Network tracing with neon-debug-mask - #net-trace-neon" -title="Link to this section"> - - -Alternatively, you may set the neon-debug-mask parameter in your -servers configuration file to cause neon's debugging output -to appear when you run the svn client. The numeric value of -neon-debug-mask is a combination of the NE_DBG_... values -in the header file ne_utils.h. For current versions of neon, setting -neon-debug-mask to 130 (i.e. NE_DBG_HTTP+NE_DBG_HTTPBODY) -will cause the HTTP data to be shown. Note that neon-debug-mask will -only work if neon was compiled with debugging support. - - - Network tracing with socat #net-trace-socat"
svn commit: r1825550 - /subversion/site/publish/docs/community-guide/debugging.part.html
Author: philip Date: Wed Feb 28 11:19:45 2018 New Revision: 1825550 URL: http://svn.apache.org/viewvc?rev=1825550=rev Log: * publish/docs/community-guide/debugging.part.html (net-trace-socat): Add https example. Modified: subversion/site/publish/docs/community-guide/debugging.part.html Modified: subversion/site/publish/docs/community-guide/debugging.part.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/community-guide/debugging.part.html?rev=1825550=1825549=1825550=diff == --- subversion/site/publish/docs/community-guide/debugging.part.html (original) +++ subversion/site/publish/docs/community-guide/debugging.part.html Wed Feb 28 11:19:45 2018 @@ -337,6 +337,22 @@ traffic from port 9630 to the normal svn print all traffic in both directions to standard error, prefixing it with and signs to show the direction of the traffic. +To log readable HTTP from an encrypted https:// connection run a +socat proxy that connects using TLS to the server: + +socat -v TCP-LISTEN:9630,reuseaddr,fork +OPENSSL:example.com:443 + +and then use that as a proxy for a plain http:// connection: + +svn ls http://example.com/svn/repos/trunk \ +--config-option servers:global:http-proxy-host=localhost \ +--config-option servers:global:http-proxy-port=9630 \ +--config-option servers:global:http-compression=no + +The socat proxy logs the plain HTTP while all the network traffic +with the server is encrypted using TLS. +
svn commit: r25202 - in /dev/subversion: subversion-1.10.0-rc1.tar.bz2.asc subversion-1.10.0-rc1.tar.gz.asc
Author: philip Date: Wed Feb 21 20:46:07 2018 New Revision: 25202 Log: Sign 1.10.0-rc1 Linux Modified: dev/subversion/subversion-1.10.0-rc1.tar.bz2.asc dev/subversion/subversion-1.10.0-rc1.tar.gz.asc Modified: dev/subversion/subversion-1.10.0-rc1.tar.bz2.asc == --- dev/subversion/subversion-1.10.0-rc1.tar.bz2.asc (original) +++ dev/subversion/subversion-1.10.0-rc1.tar.bz2.asc Wed Feb 21 20:46:07 2018 @@ -15,3 +15,14 @@ tA63MTtw3MiGStcFReRDMYBsAUqrJ9o+UWsMgb7T u4nCiFgq5Z7vNVOiTaPg =co6m -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlqN1/0ACgkQdteI4e0a +WZy6TAgAmUQSQfuOWXuQq20ElDRlqxO54H+byo7mSqtCstWd/oP+Bb8H0I5eJyU8 +97EF3TdceKvcgEHj3ofUEPMbL4VHcjmnwLI4cmLS/CTxUV2m8ekSIZK3+ewXjCYy +76j0g021k4RYswUmxpUchw8aHiTarxSVvl/ZkNIgom0xOXeKphcioc+hXHIh387r +OgrS2qKy67+rbuO3qf3B9bqDXpISmS1QGPGf4j2JmlKUYopHWKQz4Rw3P7TyfJS6 +b3b18cimeBcPGne+TLPhiM3UUvcjmI4u90lAyZvGSZrQj0q80S4t3Yz8coAZaTVJ +ynqmxog6hGcbsqI5nxt99o0f8JwaBA== +=J2tV +-END PGP SIGNATURE- Modified: dev/subversion/subversion-1.10.0-rc1.tar.gz.asc == --- dev/subversion/subversion-1.10.0-rc1.tar.gz.asc (original) +++ dev/subversion/subversion-1.10.0-rc1.tar.gz.asc Wed Feb 21 20:46:07 2018 @@ -15,3 +15,14 @@ afyupVFyKoKjYdxPWLhLr6ECqhv4492ndSUPYMSf q5odKjoQ3mhDUIaUhEpD =0SUI -END PGP SIGNATURE- +-BEGIN PGP SIGNATURE- + +iQEzBAABCAAdFiEEqER5D7V0NgbulZIHdteI4e0aWZwFAlqN1/0ACgkQdteI4e0a +WZwFXAf/XwMWLoGEWdzV9CqY0JvvOj2dwszvwEDq+05O8lUDXLOFjul4zWwby0I+ +YGQwCQ7KnF20/GeHsnEv43rkYgcmtpL7w5qPBkPlN/UwclvuINvTuidDtl1OgARM +u8TUhRrogr/vl4+RWU3ylFT5NRHw6qSEY+67vr2hyKVjIhpHdjLW8yPTQ213KtTb +kItyFGL2ehqEMgHk5/EjhzZ2+KBBMEQidz1WX8hWkTBzdtPijgxx+0hzDY9gbyU4 +srxV0oKYr0ZTzOQubcIJoaybExMBH//MBk3RTK6tbROxQTC9T+VSzCsOPONhv5RE +nBQOCPDYx8tPAzvKhEiOEfQuqTJzvw== +=dv+E +-END PGP SIGNATURE-
svn commit: r1824182 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Feb 13 22:18:35 2018 New Revision: 1824182 URL: http://svn.apache.org/viewvc?rev=1824182=rev Log: * STATUS: Cast four votes, approve 'make check' with binaries. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1824182=1824181=1824182=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Feb 13 22:18:35 2018 @@ -21,32 +21,32 @@ Candidate changes: Justification: The release build scripts should match those in the recommended APR deps. Votes: - +1: julianfoad + +1: julianfoad, philip * r1823791 Ensure that libsvn_swig_perl is built before Makefile.PL. Justification: Fixes the Perl bindings build in parallel mode (make -jN) Votes: - +1: stsp - - * r1822587, r1822591 - Make it possible to run 'nake check' with installed binaries. - Justification: - Cuts 'make check' run time in half for me because invoking the - libtool wrapper shell scripts is slow (at least on OpenBSD). - Votes: - +1: stsp, danielsh + +1: stsp, philip * r1823211 Filter standard library directories from SWIG_PL_LINK. Justification: Consistency with how this is done for other swig bindings. Votes: - +1: stsp + +1: stsp, philip Veto-blocked changes: = Approved changes: = + + * r1822587, r1822591 + Make it possible to run 'make check' with installed binaries. + Justification: + Cuts 'make check' run time in half for me because invoking the + libtool wrapper shell scripts is slow (at least on OpenBSD). + Votes: + +1: stsp, danielsh, philip
svn commit: r1824065 - in /subversion/trunk/subversion/tests/cmdline: svnadmin_tests.py svntest/main.py
Author: philip Date: Mon Feb 12 20:47:53 2018 New Revision: 1824065 URL: http://svn.apache.org/viewvc?rev=1824065=rev Log: Allow testsuite setting such as FSFS_SHARDING=3 to apply to FSX repositories. * subversion/tests/cmdline/svntest/main.py (_post_create_repos): Allow FSFS settings to apply to FSX. * subversion/tests/cmdline/svnadmin_tests.py (fsfs_file): Handle FSX repositories. (verify_denormalized_names): Don't special case FSX repositories. Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py subversion/trunk/subversion/tests/cmdline/svntest/main.py Modified: subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py?rev=1824065=1824064=1824065=diff == --- subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py Mon Feb 12 20:47:53 2018 @@ -777,9 +777,13 @@ def verify_windows_paths_in_repos(sbox): def fsfs_file(repo_dir, kind, rev): if svntest.main.options.server_minor_version >= 5: if svntest.main.options.fsfs_sharding is None: + if svntest.main.is_fs_type_fsx(): +rev = 'r' + rev return os.path.join(repo_dir, 'db', kind, '0', rev) else: shard = int(rev) // svntest.main.options.fsfs_sharding + if svntest.main.is_fs_type_fsx(): +rev = 'r' + rev path = os.path.join(repo_dir, 'db', kind, str(shard), rev) if svntest.main.options.fsfs_packing is None or kind == 'revprops': @@ -2856,10 +2860,7 @@ def verify_quickly(sbox): "verify quickly using metadata" sbox.build(create_wc = False) - if svntest.main.is_fs_type_fsfs(): -rev_file = open(fsfs_file(sbox.repo_dir, 'revs', '1'), 'r+b') - else: -rev_file = open(fsfs_file(sbox.repo_dir, 'revs', 'r1'), 'r+b') + rev_file = open(fsfs_file(sbox.repo_dir, 'revs', '1'), 'r+b') # set new contents rev_file.seek(8) Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1824065=1824064=1824065=diff == --- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original) +++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Mon Feb 12 20:47:53 2018 @@ -1035,7 +1035,8 @@ def _post_create_repos(path, minor_versi users += (crosscheck_username + " = " + crosscheck_password + "\n") file_append(os.path.join(path, "conf", "passwd"), users) - if options.fs_type is None or options.fs_type == 'fsfs': + if options.fs_type is None or options.fs_type == 'fsfs' or \ + options.fs_type == 'fsx': # fsfs.conf file if (minor_version is None or minor_version >= 6): confpath = get_fsfs_conf_file_path(path)
svn commit: r1823714 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Fri Feb 9 22:59:10 2018 New Revision: 1823714 URL: http://svn.apache.org/viewvc?rev=1823714=rev Log: * STATUS: Vote/approve reversed range mergeinfo fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1823714=1823713=1823714=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Fri Feb 9 22:59:10 2018 @@ -37,14 +37,6 @@ Candidate changes: Votes: +1: julianfoad, jamessan - * r1823202,r1823203 - Fix issue #4686 "Unable to parse reversed revision range '19634-19631'" - Justification: - Assertion failure during certain merges. - Branch: ^/subversion/branches/1.10.x-issue4686 - Votes: - +1: julianfoad, rhuijben - * r1822996 Fix x509 parser to handle RSASSA-PSS certificates. Justification: @@ -65,3 +57,11 @@ Veto-blocked changes: Approved changes: = + + * r1823202,r1823203 + Fix issue #4686 "Unable to parse reversed revision range '19634-19631'" + Justification: + Assertion failure during certain merges. + Branch: ^/subversion/branches/1.10.x-issue4686 + Votes: + +1: julianfoad, rhuijben, philip
svn commit: r1823323 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Feb 6 13:03:45 2018 New Revision: 1823323 URL: http://svn.apache.org/viewvc?rev=1823323=rev Log: * STATUS: Propose x509 parser fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1823323=1823322=1823323=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Feb 6 13:03:45 2018 @@ -45,5 +45,13 @@ Candidate changes: Votes: +1: julianfoad, rhuijben + * r1822996 + Fix x509 parser to handle RSASSA-PSS certificates. + Justification: + JavaHL needs this to handle failure to verify such certs. + 'svn auth' also affected. + Votes: + +1: philip + Approved changes: =
svn commit: r1822996 - in /subversion/trunk/subversion: libsvn_subr/x509parse.c tests/libsvn_subr/x509-test.c
Author: philip Date: Fri Feb 2 18:27:44 2018 New Revision: 1822996 URL: http://svn.apache.org/viewvc?rev=1822996=rev Log: Fix x509 parser to accept RSASSA-PSS certs by no longer assuming that algorithm parameters are NULL for all algorithms. This change doesn't affect whether clients can verify RSASSA-PSS certs, that decision is delegated to OpenSSL, but it does allow JavaHL clients to accept a failure to verify such certs. * subversion/libsvn_subr/x509parse.c (x509_get_alg): Skip over RSASSA-PSS parameters. * subversion/tests/libsvn_subr/x509-test.c (cert_tests): Add an RSASSA-PSS cert. Modified: subversion/trunk/subversion/libsvn_subr/x509parse.c subversion/trunk/subversion/tests/libsvn_subr/x509-test.c Modified: subversion/trunk/subversion/libsvn_subr/x509parse.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/x509parse.c?rev=1822996=1822995=1822996=diff == --- subversion/trunk/subversion/libsvn_subr/x509parse.c (original) +++ subversion/trunk/subversion/libsvn_subr/x509parse.c Fri Feb 2 18:27:44 2018 @@ -262,13 +262,34 @@ x509_get_alg(const unsigned char **p, co if (*p == end) return SVN_NO_ERROR; + + /* The OID encoding of 1.2.840.113549.1.1.10 (id-RSASSA-PSS) */ +#define OID_RSASSA_PSS "\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0a" - /* - * assume the algorithm parameters must be NULL - */ - err = asn1_get_tag(p, end, , ASN1_NULL); - if (err) -return svn_error_create(SVN_ERR_X509_CERT_INVALID_ALG, err, NULL); + if (equal(alg->p, alg->len, OID_RSASSA_PSS, sizeof(OID_RSASSA_PSS) - 1)) +{ + /* Skip over algorithm parameters for id-RSASSA-PSS (RFC 8017) + * + * RSASSA-PSS-params ::= SEQUENCE { + * hashAlgorithm [0] HashAlgorithmDEFAULT sha1, + * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1, + * saltLength [2] INTEGER DEFAULT 20, + * trailerField [3] TrailerField DEFAULT trailerFieldBC + * } + */ + err = asn1_get_tag(p, end, , ASN1_CONSTRUCTED | ASN1_SEQUENCE); + if (err) +return svn_error_create(SVN_ERR_X509_CERT_INVALID_ALG, err, NULL); + + *p += len; +} + else +{ + /* Algorithm parameters must be NULL for other algorithms */ + err = asn1_get_tag(p, end, , ASN1_NULL); + if (err) +return svn_error_create(SVN_ERR_X509_CERT_INVALID_ALG, err, NULL); +} if (*p != end) { Modified: subversion/trunk/subversion/tests/libsvn_subr/x509-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/x509-test.c?rev=1822996=1822995=1822996=diff == --- subversion/trunk/subversion/tests/libsvn_subr/x509-test.c (original) +++ subversion/trunk/subversion/tests/libsvn_subr/x509-test.c Fri Feb 2 18:27:44 2018 @@ -592,6 +592,32 @@ static struct x509_test cert_tests[] = { "good.example.com", "9693f17e59205f41ca2e14450d151b945651b2d7" }, + /* Signed using RSASSA-PSS algorithm with algorithm parameters */ + { +"MIICsjCCAWkCCQDHslXYA8hCxTA+BgkqhkiG9w0BAQowMaANMAsGCWCGSAFlAwQC" +"AaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiBAICAN4wKjEUMBIGA1UECgwL" +"TXkgTG9jYWwgQ0ExEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0xODAyMDIxNjQ4MzVa" +"Fw0xODAyMDMxNjQ4MzVaMC4xGDAWBgNVBAoMD015IExvY2FsIFNlcnZlcjESMBAG" +"A1UEAwwJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCues61" +"JXXpLQI5yeg4aCLWRfvnJY7wnuU6FSA++3wwCJREx1/7ebnP9RRRqqKM+ZeeFMC+" +"UlJE3ft2tJTDOVk9j6qjvKrJUKM1YkIe0lARxs4RtZKDGfOdBhw/+iD+6fZzhL0n" +"+w+dIJGzl6ADWsE/x9yjDTkdgbtxHrx/76K0KQIDAQABMD4GCSqGSIb3DQEBCjAx" +"oA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIEAgIA" +"3gOCAQEABYRAijCSGyFdSuUYALUnNzPylqYXlW+dMKPywlUrFEhKnvS+FD9twerI" +"8kT4MDW6XvhScmL1MCDPNAkFY92UqaUrgT80oyrbpuakVrxFSS1i28xy8+kXAWYq" +"RNQVaME1NqnATYF0ZMD5xQK4rpa76gvWj3K8Lt++9EjjbkNiirIIMQEOxh1lwnDQ" +"81q1Rk6iujlnVDGHDQ+w8reE6fKfSWfv1EaQRcjNKCuzrW8WNN387G2byvwaaKeL" +"M7lV7wiV6PwrTNTZzVG3cWKDOEP1mGE7gyMu66siLECo8U95+ahK7O6vfeT3m3gv" +"7kzWNYozAQtBSC7b0WqWbVrzWI4HSg==", +"O=My Local Server, CN=localhost", +"2.5.4.10 2.5.4.3", +"O=My Local CA, CN=localhost", +"2.5.4.10 2.5.4.3", +"2018-02-02T16:48:35.00Z ", +"2018-02-03T16:48:35.00Z ", +"localhost", +"25ab5a059acfc793fc0d3734d426794a4ca7b631" + }, { NULL } };
svn commit: r1821209 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Tue Jan 16 00:05:09 2018 New Revision: 1821209 URL: http://svn.apache.org/viewvc?rev=1821209=rev Log: * STATUS: write-through proxy fix is a release blocker. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1821209=1821208=1821209=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Tue Jan 16 00:05:09 2018 @@ -35,6 +35,9 @@ Candidate changes: Allows 1.10 write-through proxy to 1.9 master. Votes: +1: philip + Notes: + I believe this is a release blocker, without it we break backward + compatibilty for write-through proxies. * r1821183 Tweaks to doc strings and Doxygen mark-up of 1.10 API changes.
svn commit: r1820806 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Jan 10 23:01:55 2018 New Revision: 1820806 URL: http://svn.apache.org/viewvc?rev=1820806=rev Log: * STATUS: Propose write-through proxy fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1820806=1820805=1820806=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Jan 10 23:01:55 2018 @@ -29,6 +29,13 @@ Candidate changes: Votes: +1: philip + * r1820778 + Make mod_dav_svn report commit capabilities based on SVNMasterVersion. + Justification: + Allows 1.10 write-through proxy to 1.9 master. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1820780 - /subversion/branches/1.9.x/STATUS
Author: philip Date: Wed Jan 10 20:16:45 2018 New Revision: 1820780 URL: http://svn.apache.org/viewvc?rev=1820780=rev Log: * STATUS: Propose JavaHL SSL server trust prompt fix. Modified: subversion/branches/1.9.x/STATUS Modified: subversion/branches/1.9.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.9.x/STATUS?rev=1820780=1820779=1820780=diff == --- subversion/branches/1.9.x/STATUS (original) +++ subversion/branches/1.9.x/STATUS Wed Jan 10 20:16:45 2018 @@ -113,6 +113,13 @@ Candidate changes: Votes: +1: stefan2 + * r1820718 + Fix JavaHL SSL server trust prompting to allow accepting temporarily. + Justification: + Cannot accept temporarily without this fix. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1820779 - /subversion/branches/1.10.x/STATUS
Author: philip Date: Wed Jan 10 20:15:48 2018 New Revision: 1820779 URL: http://svn.apache.org/viewvc?rev=1820779=rev Log: * STATUS: Propose JavaHL SSL server trust prompt fix. Modified: subversion/branches/1.10.x/STATUS Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1820779=1820778=1820779=diff == --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Wed Jan 10 20:15:48 2018 @@ -22,6 +22,13 @@ Candidate changes: Votes: +1: danielsh + * r1820718 + Fix JavaHL SSL server trust prompting to allow accepting temporarily. + Justification: + Cannot accept temporarily without this fix. + Votes: + +1: philip + Veto-blocked changes: =
svn commit: r1820778 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c version.c
Author: philip Date: Wed Jan 10 20:11:02 2018 New Revision: 1820778 URL: http://svn.apache.org/viewvc?rev=1820778=rev Log: Make the reporting of commit capabilites such as SVNDIFF version and PUT checksums depend on the master version when a master-slave proxy version is configured. This allows 1.10 to be a slave proxy for earlier version masters. * subversion/mod_dav_svn/dav_svn.h * subversion/mod_dav_svn/mod_dav_svn.c (dav_svn__check_ephemeral_txnprops_support): Remove. * subversion/mod_dav_svn/version.c (get_vsn_options): Don't report commit capabilities here as we do not have access to the master version. (get_option): Report commit capabilities here. Modified: subversion/trunk/subversion/mod_dav_svn/dav_svn.h subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c subversion/trunk/subversion/mod_dav_svn/version.c Modified: subversion/trunk/subversion/mod_dav_svn/dav_svn.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/dav_svn.h?rev=1820778=1820777=1820778=diff == --- subversion/trunk/subversion/mod_dav_svn/dav_svn.h (original) +++ subversion/trunk/subversion/mod_dav_svn/dav_svn.h Wed Jan 10 20:11:02 2018 @@ -359,10 +359,6 @@ svn_boolean_t dav_svn__get_list_parentpa master server version (if provided via SVNMasterVersion). */ svn_boolean_t dav_svn__check_httpv2_support(request_rec *r); -/* For the repository referred to by this request, should ephemeral - txnprop support be advertised? */ -svn_boolean_t dav_svn__check_ephemeral_txnprops_support(request_rec *r); - /* SPECIAL URI Modified: subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c?rev=1820778=1820777=1820778=diff == --- subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c (original) +++ subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c Wed Jan 10 20:11:02 2018 @@ -923,21 +923,6 @@ dav_svn__check_httpv2_support(request_re } -svn_boolean_t -dav_svn__check_ephemeral_txnprops_support(request_rec *r) -{ - svn_version_t *version = dav_svn__get_master_version(r); - - /* We know this server supports ephemeral txnprops. But if we're - proxying requests to a master server, we need to see if it - supports them, too. */ - if (version && (! svn_version__at_least(version, 1, 8, 0))) -return FALSE; - - return TRUE; -} - - /* FALSE if path authorization should be skipped. * TRUE if either the bypass or the apache subrequest methods should be used. */ Modified: subversion/trunk/subversion/mod_dav_svn/version.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/version.c?rev=1820778=1820777=1820778=diff == --- subversion/trunk/subversion/mod_dav_svn/version.c (original) +++ subversion/trunk/subversion/mod_dav_svn/version.c Wed Jan 10 20:11:02 2018 @@ -152,9 +152,6 @@ get_vsn_options(apr_pool_t *p, apr_text_ apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_INHERITED_PROPS); apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_INLINE_PROPS); apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_REVERSE_FILE_REVS); - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_SVNDIFF1); - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_SVNDIFF2); - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_PUT_RESULT_CHECKSUM); apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_LIST); /* Mergeinfo is a special case: here we merely say that the server * knows how to handle mergeinfo -- whether the repository does too @@ -179,11 +176,29 @@ get_option(const dav_resource *resource, const apr_xml_elem *elem, apr_text_header *option) { + int i; request_rec *r = resource->info->r; const char *repos_root_uri = dav_svn__build_uri(resource->info->repos, DAV_SVN__BUILD_URI_PUBLIC, SVN_IGNORED_REVNUM, "", FALSE /* add_href */, resource->pool); + svn_version_t *master_version = dav_svn__get_master_version(r); + + /* These capabilities are used during commit and when configured as + a WebDAV slave (SVNMasterURI is set) their availablity should + depend on the master version (SVNMasterVersion is set) if it is + older than our own version. Also, although SVNDIFF1 is available + before 1.10 none of those earlier servers advertised it so for + consistency we don't advertise it for masters older than 1.10. */ + struct capability_versions_t { +const char *capability_name; +svn_version_t min_version; + } capabilities[] = { +{ SVN_DAV_NS_DAV_SVN_EPHEMERAL_TXNPROPS, { 1, 8, 0, ""} }, +{ SVN_DAV_NS_DAV_SVN_SVNDIFF1,{ 1, 10, 0, ""} }, +{ SVN_DAV_NS_DAV_SVN_SVNDIFF2,{ 1, 10, 0, "&q
svn commit: r1820718 - in /subversion/trunk: subversion/bindings/javahl/native/Prompter.cpp tools/examples/ExampleAuthn.java
Author: philip Date: Wed Jan 10 01:38:43 2018 New Revision: 1820718 URL: http://svn.apache.org/viewvc?rev=1820718=rev Log: Fix a JavaHL bug in the prompting for SSL server trust: attempting to temporarily accept failures would lead to reject behaviour. * subversion/bindings/javahl/native/Prompter.cpp (Prompter::dispatch_ssl_server_trust_prompt): Always set accepted_failures in returned credentials, this matches the behaviour of the standard svn_cmdline_auth_ssl_server_trust_prompt(). * tools/examples/ExampleAuthn.java (ExampleAuthn.sslServerTrustPrompt): Basic r/t implementation. Modified: subversion/trunk/subversion/bindings/javahl/native/Prompter.cpp subversion/trunk/tools/examples/ExampleAuthn.java Modified: subversion/trunk/subversion/bindings/javahl/native/Prompter.cpp URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/Prompter.cpp?rev=1820718=1820717=1820718=diff == --- subversion/trunk/subversion/bindings/javahl/native/Prompter.cpp (original) +++ subversion/trunk/subversion/bindings/javahl/native/Prompter.cpp Wed Jan 10 01:38:43 2018 @@ -342,8 +342,7 @@ svn_error_t *Prompter::dispatch_ssl_serv svn_auth_cred_ssl_server_trust_t *cred = static_cast<svn_auth_cred_ssl_server_trust_t*>(apr_pcalloc(pool, sizeof(*cred))); cred->may_save = save; - if (save) -cred->accepted_failures = failures; + cred->accepted_failures = failures; *cred_p = cred; return SVN_NO_ERROR; Modified: subversion/trunk/tools/examples/ExampleAuthn.java URL: http://svn.apache.org/viewvc/subversion/trunk/tools/examples/ExampleAuthn.java?rev=1820718=1820717=1820718=diff == --- subversion/trunk/tools/examples/ExampleAuthn.java (original) +++ subversion/trunk/tools/examples/ExampleAuthn.java Wed Jan 10 01:38:43 2018 @@ -68,8 +68,11 @@ public class ExampleAuthn { SSLServerCertFailures failures, SSLServerCertInfo info, boolean maySave) { - System.out.println("sslServerTrustPrompt not implemented!"); - return SSLServerTrustResult.acceptTemporarily(); + System.out.println("sslServerTrustPrompt"); + System.out.println("(r)eject or (t)emporary?"); + String s = System.console().readLine(); + return s.equals("t") ? SSLServerTrustResult.acceptTemporarily() + : SSLServerTrustResult.reject(); } public SSLClientCertResult
svn commit: r1804744 - /subversion/trunk/subversion/svn/notify.c
Author: philip Date: Thu Aug 10 23:39:48 2017 New Revision: 1804744 URL: http://svn.apache.org/viewvc?rev=1804744=rev Log: Avoid the extra blank progress notifications in most cases. * subversion/svn/notify.c (struct notify_baton): Add progress_revision. (notify_body): Use progress_revision to avoid many of the blanking prints. (svn_cl__get_notifier): Initialise progress_revision. Modified: subversion/trunk/subversion/svn/notify.c Modified: subversion/trunk/subversion/svn/notify.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/notify.c?rev=1804744=1804743=1804744=diff == --- subversion/trunk/subversion/svn/notify.c (original) +++ subversion/trunk/subversion/svn/notify.c Thu Aug 10 23:39:48 2017 @@ -54,6 +54,7 @@ struct notify_baton svn_boolean_t is_wc_to_repos_copy; svn_boolean_t sent_first_txdelta; int in_external; + svn_revnum_t progress_revision; svn_boolean_t had_print_error; /* Used to not keep printing error messages when we've already had one print error. */ @@ -477,18 +478,27 @@ notify_body(struct notify_baton *nb, _("Searching tree conflict details for '%s' " "in repository:\n"), path_local)); + nb->progress_revision = 0; break; case svn_wc_notify_tree_conflict_details_progress: /* First printf is to obliterate any previous progress printf, assuming no more than 10 digit revisions. Avoid i18n so the - text length is known. */ - SVN_ERR(svn_cmdline_printf(pool, "\rChecking r ")); + text length is known. We only need to do this if the new + revision is 4 digits less than the previous revision but that + requires counting digits. Dividing by 1000 works well + enough: it triggers when needed, it sometimes triggers when + not needed, but in typical cases it doesn't trigger as the + revisions don't vary much. */ + if (n->revision < nb->progress_revision / 1000) +SVN_ERR(svn_cmdline_printf(pool, "\rChecking r ")); SVN_ERR(svn_cmdline_printf(pool, "\rChecking r%ld...", n->revision)); + nb->progress_revision = n->revision; break; case svn_wc_notify_end_search_tree_conflict_details: SVN_ERR(svn_cmdline_printf(pool, _(" done\n"))); + nb->progress_revision = 0; break; case svn_wc_notify_add: @@ -1239,6 +1249,7 @@ svn_cl__get_notifier(svn_wc_notify_func2 nb->is_export = FALSE; nb->is_wc_to_repos_copy = FALSE; nb->in_external = 0; + nb->progress_revision = 0; nb->had_print_error = FALSE; nb->conflict_stats = conflict_stats; SVN_ERR(svn_dirent_get_absolute(>path_prefix, "", pool));
svn propchange: r1804739 - svn:log
Author: philip Revision: 1804739 Modified property: svn:log Modified: svn:log at Thu Aug 10 23:00:48 2017 -- --- svn:log (original) +++ svn:log Thu Aug 10 23:00:48 2017 @@ -1,3 +1,9 @@ * contrib/hook-scripts/CVE-2017-9800-pre-commit.py: Move from here... * tools/hook-scripts/CVE-2017-9800-pre-commit.py: ...to here. + +[Note from the future: accidentally included an extra bug fix: + +* subversion/svn/notify.c + (notify_body): Prevent garbled output of progress notification when + the revision number gets much shorter.]
svn commit: r1804739 - in /subversion/trunk: contrib/hook-scripts/CVE-2017-9800-pre-commit.py subversion/svn/notify.c tools/hook-scripts/CVE-2017-9800-pre-commit.py
Author: philip Date: Thu Aug 10 22:55:16 2017 New Revision: 1804739 URL: http://svn.apache.org/viewvc?rev=1804739=rev Log: * contrib/hook-scripts/CVE-2017-9800-pre-commit.py: Move from here... * tools/hook-scripts/CVE-2017-9800-pre-commit.py: ...to here. Added: subversion/trunk/tools/hook-scripts/CVE-2017-9800-pre-commit.py - copied unchanged from r1804737, subversion/trunk/contrib/hook-scripts/CVE-2017-9800-pre-commit.py Removed: subversion/trunk/contrib/hook-scripts/CVE-2017-9800-pre-commit.py Modified: subversion/trunk/subversion/svn/notify.c Modified: subversion/trunk/subversion/svn/notify.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/notify.c?rev=1804739=1804738=1804739=diff == --- subversion/trunk/subversion/svn/notify.c (original) +++ subversion/trunk/subversion/svn/notify.c Thu Aug 10 22:55:16 2017 @@ -480,7 +480,11 @@ notify_body(struct notify_baton *nb, break; case svn_wc_notify_tree_conflict_details_progress: - SVN_ERR(svn_cmdline_printf(pool, _("\rChecking r%ld..."), n->revision)); + /* First printf is to obliterate any previous progress printf, + assuming no more than 10 digit revisions. Avoid i18n so the + text length is known. */ + SVN_ERR(svn_cmdline_printf(pool, "\rChecking r ")); + SVN_ERR(svn_cmdline_printf(pool, "\rChecking r%ld...", n->revision)); break; case svn_wc_notify_end_search_tree_conflict_details:
svn commit: r1804735 - in /subversion/branches/1.8.x: STATUS subversion/include/svn_version.h
Author: philip Date: Thu Aug 10 22:07:07 2017 New Revision: 1804735 URL: http://svn.apache.org/viewvc?rev=1804735=rev Log: Bump 1.8.x patch level post-release. * CHANGES: Bump. * subversion/include/svn_version.h: Bump. Modified: subversion/branches/1.8.x/STATUS subversion/branches/1.8.x/subversion/include/svn_version.h Modified: subversion/branches/1.8.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/STATUS?rev=1804735=1804734=1804735=diff == --- subversion/branches/1.8.x/STATUS (original) +++ subversion/branches/1.8.x/STATUS Thu Aug 10 22:07:07 2017 @@ -10,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.19: +Status of 1.8.20: Candidate changes: == Modified: subversion/branches/1.8.x/subversion/include/svn_version.h URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/subversion/include/svn_version.h?rev=1804735=1804734=1804735=diff == --- subversion/branches/1.8.x/subversion/include/svn_version.h (original) +++ subversion/branches/1.8.x/subversion/include/svn_version.h Thu Aug 10 22:07:07 2017 @@ -70,7 +70,7 @@ extern "C" { * * @since New in 1.1. */ -#define SVN_VER_PATCH 19 +#define SVN_VER_PATCH 20 /** @deprecated Provided for backward compatibility with the 1.0 API. */