subversion

Checkout Tools
  • last updated 41 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 869495 is being indexed.

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.

* subversion/libsvn_fs_fs/tree.c

(fs_get_mergeinfo): Fix a typo in a message.

* www/faq.html (cvs2svn): Link to list of cvs2svn features.

* www/faq.html (cvs2svn): Remove obsolete FUD from this entry.

Suggested by: mhagger

* subversion/po/nb.po: make locale-gnu-po-update at r29405.

Reverting r29404. Obviously my SVK mirror is completely hosed at this

point. Sorry for the noise!

  1. … 86 more files in changeset.
An accidental commit, reverted in r29405.

    • ?
    /branches/1.5.x/build/ac-macros/neon.m4
    • ?
    /branches/1.5.x/tools/dist/nightly.sh
    • ?
    /branches/1.5.x/build/generator/gen_make.py
  1. … 86 more files in changeset.
Fix one comment buglet and one error-return-neglected buglet, both

found during the audit described in issue #3102.

* subversion/mod_dav_svn/reports/get-locks.c

(dav_svn__get_locks_report): Fix inaccurate (cut-and-pasted?) comment.

* subversion/mod_dav_svn/reports/replay.c

(dav_svn__replay_report): Check for error when flushing the brigade.

* STATUS: Nominate r29379 and r29401.

Follow-up to r29379: Define SVN_NEON_0_28 also in Windows.

* build/generator/gen_win.py

(get_win_defines): Introduce definition of SVN_NEON_0_28.

* STATUS: Nominate and vote for r29399, in the mergeinfo capabilities group.

* subversion/libsvn_ra_svn/client.c

(open_session): The repository capabilities list is optional in the

protocol; therefore, check if repos_caplist is NULL before using it.

Found by: arfrever

Switch to using a new mergeinfo API type; no functional change.

* subversion/libsvn_repos/log.c

(get_combined_mergeinfo): Use svn_mergeinfo_catalog_t, not apr_hash_t.

Use one of the new mergeinfo API types in code that was written before

the type was invented but merged to trunk after.

* subversion/libsvn_repos/repos.c

(svn_repos_has_capability): Use svn_mergeinfo_catalog_t, not apr_hash_t.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__has_capability): Same.

* subversion/libsvn_ra_neon/session.c

(svn_ra_neon__has_capability): Same.

* contrib/server-side/fsfsverify.py

(dumpChangedPaths): Output the transaction id, and indent the copyfrom path

and revision.

Break out the copyfrom revision and copyfrom path correctly from the changed

path information when the copyfrom path contains spaces.

* contrib/server-side/fsfsverify.py

(ChangedPaths.__init__): Strip the trailing newline, and only split at the

first space.

Fix a buglet in fsfsverify: don't compare the digest of rep if the digest is

the null digest.

* contrib/server-side/fsfsverify.py

(Rep.__init__): If the digest is the null digest, then set the instance

attribute to None to prevent comparison.

Clarify how ra_dav's mergeinfo capability query works.

Suggested by: glasser

* subversion/include/svn_dav.h

(SVN_DAV_NS_DAV_SVN_MERGEINFO): Document that this is about server

capability, not repository capability.

* subversion/mod_dav_svn/version.c

(get_vsn_options): Explain in detail what's going on.

Merged revisions 28539,28541-28544,28546-28547,28550-28552,28558-28560,28563,28572,28574-28580,28584,28591-28598,28603-28608,28610-28618,28623,28628-28634,28637,28639-28643,28645-28648,28652,28658-28660,28662-28665,28672,28681-28682,28692-28696,28700-28707,28712-28713,28717-28721,28727-28731,28733,28736,28739,28741-28743,28745-28747,28749,28758,28760-28761,28766,28771,28775-28776,28781,28791-28792,28795,28798,28802,28808,28810,28812,28814,28818-28820,28824-28832,28834-28835,28837,28839-28842,28846,28848-28853,28856-28858,28860-28866,28871-28875,28878-28882,28885,28893-28894,28902,28904-28922,28926,28928-28929,28933-28944,28946,28950-28961,28965-28968,28970-28975,28978-28980,28983,28985-28990,28992-28997,28999,29001-29006,29008-29031,29034-29039,29042-29049,29053-29059,29061-29080,29083,29085,29090-29094,29098-29099,29101,29106-29108,29110-29111,29114,29117-29120,29123,29126-29128,29134-29136,29138-29139,29143-29144,29148,29151-29153,29155,29161,29163-29164,29166-29171,29174-29176,29180-29181,29185-29199,29201-29202,29207-29208,29210,29214-29216,29218,29220,29225,29228,29230-29234,29239,29241-29243,29250-29256,29261-29262,29267-29271,29273,29277,29280-29281,29284,29287-29288,29298,29304,29308-29309,29313,29320,29326,29328-29329,29334,29336,29344,29348,29353,29358,29360,29364,29366 via svnmerge from

http://204.11.125.46/repos/svn/trunk

  1. … 338 more files in changeset.