subversion

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

Changeset 1403849 is being indexed.

Sync the 'master-passphrase' branch with recent trunk changes.

(Merged /subversion/trunk:r1390051-1403823.)

  1. … 338 more files in changeset.
* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__open): Use whitespace instead of '/' as delimiter for

custom user-agent string.

* STATUS: Cast some votes, approving two groups.
Convert some driver functions in the update-move editor to wcroot+relpath.

* subversion/libsvn_wc/wc_db_update_move.c

(update_moved_away_file, update_moved_away_dir,

update_moved_away_subtree): Expect relative paths instead of absolute.

Rename several 'abspath' parameters to 'relpath' accordingly.

Construct absolute paths internally where necessary.

(drive_tree_conflict_editor): Pass relative paths to above functions.

Propose r1403583 for backport (with danielsh's via-email +1).

Also propose r1403588 + r1403691 for backport.

* subversion/tests/cmdline/update_tests.py

(update_to_HEAD_plus_1): Tweak expected error message regexp to

reveal check the human readable bit of the error string, too.

Suggested by: rhuijben

More wcroot+relpath refactoring in the move-update editor.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_baton): Rename src_abspath and dst_abspath to src_relpath and

dst_relpath.

(tc_editor_alter_file): Assume relative paths in tc_editor_baton while

constructing moved_to_abspath.

(tc_editor_complete): Assume relative paths in tc_editor_baton while

constructing notification.

(drive_tree_conflict_editor): Expect relative paths for move source and

destination paths.

(update_moved_away_conflict_victim): Feed relative paths into tc_editor_baton

and pass them to drive_tree_conflict_editor(), too.

In the move-update editor, obtain info about the tree-conflict earlier,

before we start using wcroot and relpath pairs.

This backpedals a bit from my goal to make all of this file use wcroot

and relpath pairs. But there are too many APIs that would need to be

converted to wcroot+relpath, and doing so wouldn't gain us much.

Reading tree-conflict info outside the wc_db transaction should be safe

since this code assumes that a write-lock is held on the working copy.

* subversion/libsvn_wc/wc_db_update_move.c

(get_tc_info): Drop unused dst_abspath parameter.

(update_moved_away_conflict_victim_baton): New members operation,

local_change, incoming_change, old_version, and new_version.

(update_moved_away_conflict_victim): Don't call get_tc_info() here.

Pull tree-conflict info from the caller-provided baton instead.

(svn_wc__db_update_moved_away_conflict_victim): Read tree-conflict info

into update_moved_away_conflict_victim()'s baton, before starting the

wc_db transaction.

Expose base_get_info() from wc_db.c for use by other wc_db source files.

* subversion/libsvn_wc/wc_db.c

(base_get_info): Remove forward declaration, and rename to ...

(svn_wc__db_base_get_info_internal): ... this.

(db_base_remove, svn_wc__db_base_get_info, insert_external_node,

get_info_for_copy, remove_node_txn, read_url_txn, svn_wc__db_global_relocate,

determine_repos_info, bump_node_revision, bump_revisions_post_update,

lock_add_txn, lock_remove_txn, svn_wc__db_scan_base_repos, scan_addition_txn,

end_directory_update, has_switched_subtrees): Update callers.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_base_get_info_internal): Declare.

Create a wc_db-internal interface to svn_wc__db_read_conflict().

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_read_conflict): Split most of this out into ...

(svn_wc__db_read_conflict_internal): ... this function, which accepts a

wcroot and relpath pair instead of a wc_db and abspath pair.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_read_conflict_internal): Declare.

* subversion/libsvn_wc/wc_db_update_move.c: Clean up whitespace.

Start converting the move-update editor to use wcroot and relpaths,

instead of a wc_db and abspaths, as is appropriate for internal wc_db code.

* subversion/libsvn_wc/wc_db_update_move.c

(update_moved_away_conflict_victim_baton): Rename 'victim_abspath' to

'victim_relpath'.

(update_moved_away_conflict_victim): Use the wc_db-internal scan_deletion()

function to derive the move target relpath from the tree-conflict victim

relpath, instead of using the wc_db consumer scan_deletion() API.

Expose scan_deletion() from wc_db.c for use by other wc_db source files.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_scan_deletion_internal): Declare.

* subversion/libsvn_wc/wc_db.c

(scan_deletion): Remove forward declaration, and rename to ...

(svn_wc__db_scan_deletion_internal): ... this.

(get_info_for_copy, read_url_txn, svn_wc__db_global_relocate,

scan_deletion_txn, svn_wc__db_scan_deletion): Update scan_deletion() callers.

Tweak benchmark suite1's charts and timings selection capabilities.

* tools/dev/benchmarks/suite1/benchmark.py:

<top>: Wade through docs.

(bail): New function, monopolizes error handling.

(parse_timings_selections): New function, understands '@each' keyword.

(cmdline_run, cmdline_list, cmdline_show, cmdline_chart_compare):

Use parse_timings_selections(). Diffs are mostly indents.

(cmdline_chart_compare):

Arrange charts vertically, tweak the hell out of everything.

Tweak the server-side logic which validates update report source and

target revision values so that they always get checked for validity,

not only when doing non-client-pegged updates.

* subversion/mod_dav_svn/reports/update.c

(validate_input_revision): New helper function.

(dav_svn__update_report): Always query the youngest FS revision, and

use it (via validate_input_revision()) to raise errors when the

client requests an update to a revision younger than is available

or reports that it has objects whose revision is greater than the

youngest.

* subversion/tests/cmdline/update_tests.py

(update_to_HEAD_plus_1): Look for an error code, not a particular

string.

We *really* shouldn't be passing a 0 error code of to our mod_dav_svn

create-an-xml-error-tag logic anyway, but just in case, teach our

helper functions to keep at least a sane default value on standby.

* subversion/mod_dav_svn/dav_svn.h,

* subversion/mod_dav_svn/util.c

(dav_svn__new_error, dav_svn__new_error_tag): If the provided error

code is 0, use SVN_ERR_RA_DAV_REQUEST_FAILED.

Fix the cause of a client-side hang in ra_serf's handling of

Subversion's custom XML error tags.

* subversion/libsvn_ra_serf/util.c

(start_error): Treat an error tag which has errcode="0" the same as

one that lacks an error code altogether.

* subversion/libsvn_ra_serf/util_error.c

(svn_ra_serf__wrap_err): Don't SEGV when callers pass NULL format.

* subversion/libsvn_subr/sqlite.c

(): disable "unused function" warning caused by amalgamated sqlite

* subversion/libsvn_subr/named_atomic.c

(svn_atomic_namespace__create): Loop when attaching to, or creating, the

shared memory to limit the effect of racing with other processes.

In the move-update editor, propagate a wcroot object to all editor functions

at both the driving and receiving ends to make it possible to run DB queries.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_baton): Add wcroot member.

(update_moved_away_file, update_moved_away_dir,

update_moved_away_subtree, drive_tree_conflict_editor): Add a wcroot

parameter and pass it through as appropriate.

(update_moved_away_conflict_victim): Store wcroot pointer in tc_editor baton

and pass it on to update_moved_away_conflict_victim().

Use a wc_db API in the move-update editor instead of directly using

an svn_sqlite API.

* subversion/libsvn_wc/wc_db_update_move.c

(update_moved_away_conflict_victim): Make this an implementation of

svn_wc__db_txn_callback_t instead of svn_sqlite__transaction_callback_t.

(svn_wc__db_update_moved_away_conflict_victim): Call svn_wc__db_with_txn()

instead of svn_sqlite__with_transaction().

* subversion/tests/cmdline/svntest/main.py

(copy_repos): Write whole dump error to log file not just the first line.

* subversion/mod_dav_svn/version.c

(get_option): Comment tweak only.

Wrap the move update editor (formally: tree conflict editor) into an sqlite

transaction. This makes any DB changes performed by the editor atomic.

* subversion/libsvn_wc/wc_db_update_move.c

(update_moved_away_conflict_victim): New helper function, an implementation

of svn_sqlite__transaction_callback_t. Derived from the former

svn_wc__db_update_moved_away_conflict_victim() function.

(update_moved_away_conflict_victim_baton): New baton for above function.

(svn_wc__db_update_moved_away_conflict_victim): Re-implement as a wrapper

around update_moved_away_conflict_victim(), running the latter within

an sqlite transaction.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_baton): Don't declare a global instance of this struct.

* subversion/libsvn_wc/context.c

(svn_wc_context_create): silence a const-cast warning

Fix / circumvent the last WCNG-related deprecation warnings:

Provide library-internal API variants with the same function

signature as the deprecated API.

Please note that due to the legacy API structure, there is no

acceptable way to prevent the internal use of deprecated API

in the implementation of those legacy API functions.

* subversion/libsvn_wc/lock.h

(svn_wc__adm_access_pool_internal): declare new internal API

* subversion/libsvn_wc/lock.c

(svn_wc__adm_access_pool_internal): implement it

* subversion/libsvn_wc/entries.h

(svn_wc__entries_read_internal): declare new internal API

* subversion/libsvn_wc/entries.c

(svn_wc__entries_read_internal): renamed from svn_wc_entries_read;

use new private API to access adm pool

(svn_wc_entries_read): call the above

(walker_helper): use new internal API

* subversion/libsvn_wc/old-and-busted.c

(svn_wc_entry): use new internal API

* subversion/libsvn_wc/wc_db_update_move.c: Include wc_db_private.h.

Avoid defined-but-not-used warning.

* subversion/libsvn_repos/replay.c

(fetch_kind_func, fetch_props_func): Make these conditional to match caller.