subversion

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

Changeset 1448320 is being indexed.

* subversion/include/svn_cmdline.h

(svn_cmdline_prompt_baton2_t): Fix doc string.

* subversion/libsvn_wc/copy.c

(svn_wc__move2): Typo in comment.

* subversion/libsvn_wc/copy.c

(remove_node_conflict_markers): Indentation fix.

* subversion/libsvn_wc/copy.c

(svn_wc__move2): Move some local variable declarations up to the beginning

of the function. It is small enough to make do without a nested scope.

No functional change.

When a node is conflicted, it is conflicted in WORKING. When BASE is completely

shadowed (and this is not the op-root of the shadowing) the conflict is

unrelated to the BASE update and the update can just continue.

This makes it easier to rely on the update code for recovering of certain

kinds of tree conflicts.

* subversion/libsvn_wc/update_editor.c

(delete_entry,

open_directory,

add_directory,

open_file,

add_file): Don't skip conflicted nodes when their parents are shadowed as in

this case the conflict just applies to WORKING.

When we report an entire update as skipped we shouldn't just bump its

base revision as that might break the working copy state. (E.g. checksums

might be invalid for the new revision). I think this fixes some of

issue #4323, although the desired 1.8 behavior might be different.

* subversion/libsvn_wc/update_editor.c

(open_root): Not just notify, but also record the skip of the

update anchor.

* subversion/tests/cmdline/update_tests.py

(bump_below_tree_conflict): New test.

(test_list): Add bump_below_tree_conflict.

* tools/client-side/bash_completion

(_svn): Add missing options to commit, diff, list, log, merge,

move, propget, proplist. Don't make --accept madatory for resolve.

(_svnadmin): Add freeze.

Fix a memory bug: using pool memory after clear.

* subversion/libsvn_repos/authz.c

(authz_retrieve_config_repo): Allocate result in result pool.

(authz_retrieve_config): Typo in docstring.

In the update-move code, notify after the transaction has completed instead

of just before the transaction has completed.

Also, store notification information in the update-move list regardless

of whether a notify_func was provided by the caller. This allows us to

simplify some code by removing a few notify_func/baton pairs that were

being passed around only to be checked for non-NULLness.

* subversion/libsvn_wc/wc_db_private.h

(bump_revisions_post_update): Remove notify_func/baton parameters.

* subversion/libsvn_wc/wc_db.c

(bump_revisions_post_update): svn_wc__db_bump_moved_away() does not take

notify_func/baton anymore.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_baton): Remove notify_func/baton members.

(mark_tree_conflict, tc_editor_add_file, update_working_file): Remove the

notify_func/baton parameters. Add items to the update-move notification

list unconditionally.

(check_tree_conflict tc_editor_add_directory, tc_editor_alter_directory,

tc_alter_file, tc_editor_delete): Update callers.

(tc_editor_complete): Stop sending notifications from here.

(update_moved_away_conflict_victim): Track removal of notify_func/baton from

the tc_editor_baton. Send notifications after the update-move transaction

has completed.

(bump_mark_tree_conflict, bump_moved_away, svn_wc__db_bump_moved_away,

resolve_delete_raise_moved_away): Remove notify_func/baton parameters.

(svn_wc__db_resolve_delete_raise_moved_away): Update caller.

In the move-update code, make the mark_tree_conflict() function more generic

by replacing its tc_editor_baton "bag of parameters" argument with a list

of individual parameters.

This allows the mark_tree_conflict() function to be reused more easily from

contexts other than the update-move editor, e.g. svn_wc__db_bump_moved_away().

* subversion/libsvn_wc/wc_db_update_move.c

(mark_tree_conflict): Replace baton argument with individual parameters.

Stop marking b->conflict_root_relpath within this function and rely on

callers that want to update the path to do so themselves.

Rename some local variables to avoid overlap with new parameter names.

(check_tree_conflict, tc_editor_add_directory,

tc_editor_add_file, tc_editor_delete, bump_mark_tree_conflict,

resolve_delete_raise_moved_away): Update callers. Some of these were

already constructing fake tc_editor_batons in order to call the

mark_tree_conflict() function, and there is no need to do so anymore.

Minor user-friendliness tweaks to the interactive conflict resolver.

* subversion/svn/conflict-callbacks.c

(prompt_user): Say 'Unrecognized option' when we don't recognize the

input.

(handle_text_conflict): Tell the user why 'resolved' is not considered a

valid input. Add some notes.

* subversion/libsvn_wc/wc_db_update_move.c

(bump_mark_tree_conflict): Instead of flagging a tree conflict with some

information missing (e.g. old/new version), call the mark_tree_conflict()

function and provide it with all necessary information to flag the tree

conflict properly. Add move_dst_op_root_relpath parameter which is required

for obtaining information about the node's pre-update state.

(svn_wc__db_bump_moved_away): Read the move destination op-root path and

pass it on to bump_mark_tree_conflict().

* subversion/tests/cmdline/update_tests.py

(update_moved_away): This test now passes as the spurious duplicate tree

conflict notification is fixed with this commit. Remove XFail marker.

Expose the static fetch_repos_info wc_db function to other wc_db source files.

* subversion/libsvn_wc/wc_db.c

(fetch_repos_info): Rename to ...

(svn_wc__db_fetch_repos_info): ... this, and drop 'static' marker.

(svn_wc__db_base_get_info, svn_wc__db_base_get_children_info,

svn_wc__db_external_read, db_op_copy_shadowed_layer,

svn_wc__db_read_info, read_children_info, read_url_txn,

svn_wc__db_global_relocate, svn_wc__db_scan_base_repos,

svn_wc__db_scan_addition, has_switched_subtrees,

svn_wc__db_base_get_lock_tokens_recursive): Update callers.

Change the working copy exclusive locking default to off and require

explict enabling by the user. Allow Windows users to enable exclusive

locking.

* subversion/include/svn_config.h

(SVN_CONFIG_OPTION_SQLITE_EXCLUSIVE_CLIENTS): New.

* subversion/libsvn_subr/config_file.c

(svn_config_ensure): Add new option to default file contents.

* subversion/svn/svn.c

(SVN_CL_NO_DEFAULT_EXCLUSIVE_LOCK): Rename to ...

(SVN_CL_NO_EXCLUSIVE_LOCK): ... this.

(sub_main): Use new option.

Temporarily revert r1447695 which is causing unexpected test failures.

* subversion/libsvn_wc/wc_db_update_move.c

(suitable_for_move): Rephrase error message shown for mixed-rev/switched

move sources. Also print a separate error message for reach failure case,

so it is easier to see which condition is preventing a move-update.

* subversion/libsvn_wc/wc_db_update_move.c

(get_tc_info): Cope with NULL version information stored in a tree conflict.

I am not sure if such conflicts are valid in the first place, but raising an

error is better than crashing, in any case.

Fix the interactive conflict resolver 'q' option -- it wasn't quitting.

Found by: markphip

* subversion/svn/conflict-callbacks.c

(svn_cl__interactive_conflict_baton_t): Add a 'quit' flag.

(handle_text_conflict,

handle_prop_conflict,

handle_tree_conflict,

handle_obstructed_add): Set the 'quit' flag as well as setting the

baton's accept_which to 'postpone'.

(svn_cl__resolve_postponed_conflicts): If the 'quit' flag is set after

resolving conflicts on a given path, then don't process any more paths.

Follow-up to r1439592:

* tools/hook-scripts/mailer/mailer.py

(main): Fix a copy-paste error in r1439592.

Patch by: Nick Peelman <nick@peelman.us>

* subversion/svn/svn.c

(sub_main): Don't take an exclusive lock by default on Windows. TortoiseSVN

appears to be our most used client, and would be unable to share working

copies with 'svn' because of this default, as would other popular Windows

clients. I can't speak for other platforms, but on Windows the average

user uses more than 'svn' and as such likes clients to work together like

they used to during Subversion 1.X instead of blocking each other.

Without this optimization 1.8 is faster on Windows than 1.7 was and 1.7

already was much faster than older versions.

Also make it easier for other distributions to opt-out of this behavior

change by using a specific define.

* subversion/svn/svn.c

(sub_main): Add comment noting backwards compatibility concern.

German translations update

* subversion/po/de.po

add 10 translations, use correct equivalent of REPOS_PATH throughout

Fix an enum type mismatch in the 'svn' conflict callbacks menu table.

* subversion/svn/conflict-callbacks.c

(text_conflict_options, prop_conflict_options, obstructed_add_options,

tree_conflict_options, tree_conflict_options_update_moved_away):

Don't assign a svn_cl__accept_t value to svn_wc_conflict_choice_t.

Assign the appropriate conflict_choice_t value instead.

(handle_text_conflict, handle_prop_conflict, handle_tree_conflict,

handle_obstructed_add): If the "q" option was given, record 'postpone'

as a permanent answer to future conflict prompts. This value used

to come directly from menu data, but this meant that the conflict choice

returned to the library was copied from the wrong type of enum.

* subversion/libsvn_wc/wc_db.c

(db_base_remove): Fix missing sqlite statement reset in error path.

Found by: philip

* subversion/libsvn_wc/wc_db.c

(db_base_remove): Plug error leaks I introduced in r1447380.

Found by: philip

Clear moved-here markers of nodes which were moved outside of a subtree

which is being deleted during an update.

Before this change, the move source node disappeared from the working

copy while the moved-here marker remained set at the destination, leaving

behind a dangling move.

Suggested by: philip

* subversion/libsvn_wc/wc-queries.sql

(STMT_CLEAR_MOVED_HERE_RECURSIVE): New. Clears moved-here on a node and

any moved-along children.

* subversion/libsvn_wc/wc_db.c

(clear_moved_here): New helper function.

(db_base_remove): When removing a conflicted node, clear moved-here markers

at the destinations of moves which moved nodes outside the conflicted node.

Add a FIXME comment explaining an alternative approach which we might want

to implement in 1.9 and beyond.

* subversion/tests/libsvn_wc/op-depth-test.c

(move_away_delete_update): This test now passes, so remove XFAIL marker.

Delay creating the client/wc context until after we have finished

tweaking the config hash so that the full config is available when

creating the context. In particular the SQLite exclusive locking

flag is available when first opening the wc_db.

* subversion/svn/svn.c

(sub_main): Create context later.

* subversion/libsvn_wc/update_editor.c

(delete_entry): Fix indentation of a comment.

Split the large body of the libsvn_wc resolve_conflict_on_node() function

into 3 distinct helper functions (one each for text, prop, and tree conflicts).

Do some minor cleanup while here. No functional change.

* subversion/libsvn_wc/conflicts.c

(resolve_text_conflict_on_node, resolve_prop_conflict_on_node,

resolve_tree_conflict_on_node): New, moved with small changes from...

(resolve_conflict_on_node): ... this function. Replace all occurrences of

'pool' with 'scratch_pool', since pool was simply assigned to scratch_pool

upon entry to this function. Get rid of the work_items parameter and make

it a local variable instead, since no existing caller was using work items

returned by this function.

(svn_wc__mark_resolved_text_conflict,

svn_wc__mark_resolved_prop_conflicts,

conflict_status_walker): Update callers of resolve_conflict_on_node().

* subversion/libsvn_wc/conflicts.c

(resolve_conflicts_on_node): Remove a comment in the docstring that refers

to times when conflict_status_walker() still contained logic to resolve

some conflicts which was moved into resolve_conflicts_on_node in r1443172.