subversion

Checkout Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 869513 is being indexed.

* subversion/libsvn_ra_neon/session.c

(parse_capabilities): Simplify (and optimise) to retrieve the DAV:

response header directly rather than unnecessarily iterating through

all the returned header fields to find it. Also fix the comment.

Finish issue #2986: get copyfrom sources from under scheduled replacements.

* subversion/libsvn_wc/update_editor.c

(locate_copyfrom): Take new return parameter, src_entry.

(add_file_with_history): Obtain the src_entry via above new parameter,

use it to determine whether to get revert base or regular base,

for both props and text.

* subversion/tests/cmdline/copy_tests.py

(test_list): Expect replaced_local_source_for_incoming_copy to pass.

Truth in advertising. Rename --enable-dso to --enable-loadable-ra-modules to

avoid confusion over overloaded term of 'dso' and give an explicit hint what

this means in the name.

* configure.ac

(--enable-dso): Rename to..

(--enable-loadable-ra-modules): this.

Extend issue #2986 regression test: check the properties too.

This follows up to r29434.

* subversion/tests/cmdline/copy_tests.py

(replaced_local_source_for_incoming_copy): Extend to test properties.

* COMMITTERS (arfrever): Move Arfrever Frehtes Taifersar Arahesis to

full committers section, as per discussion at Starfleet Headquarters.

Add a regression test for what remains of issue #2986: we sometimes

choose the wrong base file for copies, resulting in error.

This just tests file content; we may extend to cover properties too.

See http://subversion.tigris.org/issues/show_bug.cgi?id=2986#desc9.

[Note: extended to test properties in r29436.]

* subversion/tests/cmdline/copy_tests.py: Import shutil.

(replaced_local_source_for_incoming_copy): New test.

(test_list): Run it, XFail for now.

When FSFS detects corruption while reading a noderev or

representation, wrap the error in an error stating the noderev ID or

representation key being read.

* subversion/libsvn_fs_fs/fs_fs.c

(get_node_revision_body): Rename from svn_fs_fs__get_node_revision.

(svn_fs_fs__get_node_revision): New error-adding wrapper.

(create_rep_state_body): Rename from create_rep_state.

(create_rep_state): New error-adding wrapper.

* INSTALL: Note that we support Neon 0.28.

* STATUS: Vote for r29401, can't really speak to r29379 as a non-*nix guy.
* STATUS: s/the the/the/

* subversion/libsvn_ra_neon/session.c

(get_server_settings): Fix spelling mistake in comment

introduced in r29426.

Found by: glasser

Code refactor: Use 'svn_hash_diff' to diff between mergeinfo hashes

instead of custom logic.

* subversion/libsvn_subr/mergeinfo.c

(): Include svn_hash.h

(struct mergeinfo_diff_baton): New structure.

(mergeinfo_hash_diff_cb): New function.

(walk_mergeinfo_hash_for_diff): Remove TODO in the doc string as

this commit implements the same. Use 'svn_hash_diff' to diff

between mergeinfo hashes instead of custom logic.

Request that full-committer acceptance by existing partial committers still

contact the svnadmin@ account now that we are using authz on the server.

* subversion/libsvn_ra_neon/session.c

(get_server_settings): Apply http-proxy-exceptions only to

proxy-specific config options; use non-proxy-specific global

defaults regardless of the exceptions setting.

* subversion/libsvn_ra_neon/session.c

(get_server_settings): Bring docstring up-to-date with respect to

r29421 and fix reference to "neon_auto_protocols" parameter.

Fix coding style.

* subversion/bindings/swig/ruby/test/test_core.rb

(SvnCoreTest#test_mergerange_equality): Don't omit parentheses.

* subversion/libsvn_ra_neon/session.c (get_server_settings): Fix to

allow per-group "http-auth-types" settings (existing code was simply

retrieving the global setting twice, presumably a copy'n'paste-o).

* subversion/libsvn_ra_neon/session.c (svn_ra_neon__open) [SVN_NEON_0_27]:

Set connection timeout along with read timeout.

Enable PKCS#11 (smartcard) support with neon 0.28:

* subversion/libsvn_ra_neon/session.c [SVN_NEON_0_28]: Include

ne_pkcs11.h

(cleanup_p11provider, client_ssl_pkcs11_pin_entry): New functions.

(get_server_settings): Add and handle the pk11_provider parameter.

(svn_ra_neon__open): Fetch the PKCS#11 provider from the config

file; if specified, initialize and set up the provider and PIN

callback for both sessions, along with the cleanup.

* subversion/libsvn_ra_neon/ra_neon.h: Add p11pin_iterstate field to

svn_ra_neon__session_t structure.

* subversion/include/svn_config.h: Add ssl-pkcs11-provider option.

* subversion/libsvn_subr/config_file.c (svn_config_ensure): Document

new ssl-pkcs11-provider config option.

Follow up to r29374. "Merge the mergeinfo-api-cleanup branch to trunk."

* subversion/bindings/swig/core.i

(%apply apr_hash_t *MERGEINFO): Apply typemap to parameters named

mergeinput.

(%apply apr_hash_t *MERGEINFO_HASH): Apply typemap to parameters named

catagory

* subversion/bindings/swig/svn_ra.i

(%apply apr_hash_t *MERGEINFO_HASH): Removed.

* subversion/bindings/swig/svn_fs.i

* subversion/bindings/swig/svn_repos.i

(%apply apr_hash_t *HASH_CSTRING): Removed.

* subversion/bindings/swig/ruby/test/test_repos.rb

* subversion/bindings/swig/ruby/test/test_fs.rb

(SvnReposTest#test_mergeinfo): Expected result is now a mergeinfo instead of

a string.

* subversion/bindings/swig/ruby/test/test_core.rb

(SvnCoreTest#test_mergerange_equality): New test

* subversion/bindings/swig/ruby/svn/core.rb

(Svn::Core::MergeRange#==): New method.

(Svn::Core::MergeInfo#to_s): Use Core.mergeinfo_to_string() instead of

Core.mergeinfo_to_stringbuf()

(Svn::Core::RangeList#to_s): Use Core.rangelist_to_string() instead of

Core.rangelist_to_stringbuf()

Change the format of the revprops block sent in svnserve for

replay-range so that the discard-rest-of-edit-after-error loop at the

bottom of svn_ra_svn_drive_editor2 doesn't choke on them.

This incompatible change must be backported to 1.5 or reverted on

trunk.

* subversion/libsvn_ra_svn/client.c

(ra_svn_replay_range): Read tuple with "revprops" word at front.

* subversion/svnserve/serve.c

(replay_range): Write "revprops" at the beginning of tuple.

* subversion/libsvn_ra_svn/protocol

(replay-range): Add "revprops" word.

Fix a potential hang in svnserve/ra_svn.

The specific case that triggered this was running svnsync replaying

from a 1.4.x svnserve, and doing a SIGINT. Generally, the "failure"

in the pipelined editor written from the client to the server happened

"too late" for the server to abort the edit.

Found by: lgo

* subversion/libsvn_ra_svn/editorp.c

(svn_ra_svn_drive_editor2): If we sent an error to the other side,

consider a "success" from the other side to be the end of the

commands to discard, as well as an "abort-edit".

* subversion/libsvn_repos/log.c:

Update a couple of spots to use svn_mergeinfo_t

Fix the null digest detection in fsfsverify, and implement it in a way that

preserves the digest for output.

* contrib/server-side/fsfsverify.py

(NULL_DIGEST): New.

(Rep.__init__): Don't reset the digest.

(Rep.verify): Don't compare the md5 digest if the NULL digest was recorded in

the node rev.

Follow-up to r29414: fix a copy-and-paste-o.

* tools/server-side/svn_dav_log_parse.py

(_parse_get_file): Call the right handler.

Change property listing action in the SVN-ACTION DAV logging names to

match the svnserve command set. Specifically, remove the prop-list

command; add "props" and "text" flags to the get-dir action; and

create a get-file action like the get-dir one. mod_dav_svn never logs

a "get-file P rR text" action, but that's OK.

(See also r29412.)

* subversion/mod_dav_svn/deadprops.c

(db_first_name): Change "prop-list" SVN-ACTION to "get-dir props" or

"get-file props".

* subversion/mod_dav_svn/repos.c

(do_walk): Add "text" to get-dir SVN-ACTION.

* tools/server-side/svn_dav_log_parse.py

Update docstring.

(_parse_get_dir): Adjust.

(_parse_get_file): New.

(_parse_prop_list): Remove.

* tools/server-side/test_svn_dav_log_parse.py

(TestCase.get_dir_or_file): Extract from test_get_dir.

(TestCase.test_get_dir): Now a wrapper around get_dir_or_file.

(TestCase.test_get_file): New.

(TestCase.test_prop_list): Remove.

(Test.handle_get_dir): Adjust.

(Test.handle_get_file): New.

(Test.handle_prop_list): Remove.

* subversion/libsvn_ra_serf/replay.c: Fix typo in comment.
Change some of the SVN-ACTION DAV logging names to match the svnserve

command set.

Justification:

- 1.5 already contains backwards-incompatible changes to the logging

format; this (if it gets backported) is a reasonable time to make

other bikesheddy changes.

- The svnserve command set is a good vocabulary for svn operational

actions; there's no reason to have a second vocabulary that is

mostly but not entirely the same.

- When svnserve grows logging, it would make sense to use its command

set as the vocabulary; making these format changes would allow the

two servers to share the same log format.

The specific changes made:

list-dir => get-dir

revprop-change => change-rev-prop

revprop-list => rev-proplist

blame => get-file-revs

remote-status => status

diff-or-merge => diff

(I would also like to get rid of prop-list, and in exchange add

props?/text? fields to get-dir and a new get-file.)

(It may also be worth logging get-locations and

get-location-segments, especially given that the latter has

complicated performance characteristics.)

* subversion/mod_dav_svn/deadprops.c

(save_value): revprop-change => change-rev-prop

(db_first-name): revprop-list => rev-proplist

* subversion/mod_dav_svn/reports/file-revs.c

(dav_svn__file_revs_report): blame => get-file-revs

* subversion/mod_dav_svn/reports/update.c

(dav_svn__update_report): diff-or-merge => diff

* subversion/mod_dav_svn/repos.c

(do_walk): list-dir => get-dir

* tools/server-side/svn_dav_log_parse.py

Update docstring; adjust everywhere.

* tools/server-side/test_svn_dav_log_parse.py

Adjust everywhere.

Documentation fixes only:

* subversion/libsvn_wc/update_editor.c

(struct file_baton): Document that propchanges member is never null;

clarify what new_text_base_path actually is.

Polish translation update.

* subversion/po/pl.po: Polish translation update.