Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/x509info.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/x509info.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_subr/x509info.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/x509info.c Sat Feb 14 11:15:05 2015 @@ -168,7 +168,7 @@ svn_x509_oid_to_string(const unsigned ch } else if (*p < 128) { - /* The remaining values if they're less than 128 are just + /* The remaining values if they're less than 128 are just * the number one to one encoded */ temp = apr_psprintf(scratch_pool, ".%d", *p); p++;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c Sat Feb 14 11:15:05 2015 @@ -1772,6 +1772,7 @@ static svn_error_t * read_tree_conflict_desc(svn_wc_conflict_description2_t **desc, svn_wc__db_t *db, const char *local_abspath, + svn_node_kind_t node_kind, const svn_skel_t *conflict_skel, svn_wc_operation_t operation, const svn_wc_conflict_version_t *left_version, @@ -1792,51 +1793,18 @@ read_tree_conflict_desc(svn_wc_conflict_ else if (reason == svn_wc_conflict_reason_unversioned || reason == svn_wc_conflict_reason_obstructed) SVN_ERR(svn_io_check_path(local_abspath, &local_kind, scratch_pool)); - else if (operation == svn_wc_operation_merge) + else if (action == svn_wc_conflict_action_delete + && left_version + && (operation == svn_wc_operation_update + ||operation == svn_wc_operation_switch) + && (reason == svn_wc_conflict_reason_deleted + || reason == svn_wc_conflict_reason_moved_away)) { - /* ### If the merge replaced the node, this will read the kind of - * ### the merge-right node, which is not necessarily the node - * ### kind of the tree conflict victim. - * ### This needs the BASE node kind if the node was not replaced - * ### at the time the merge was run. But if the node was already - * ### replaced before the merge, it needs the kind of the replacing - * ### node. Ideally, we'd store the victim node kind in conflict - * ### storage instead of guessing it here... - */ - /* Read the tree conflict victim's node kind from the working copy, - or if it doesn't exist directly from disk. */ - SVN_ERR(svn_wc__db_read_kind(&local_kind, db, local_abspath, - TRUE /* allow missing */, - FALSE /* show deleted */, - FALSE /* show hidden */, scratch_pool)); - - if (local_kind == svn_node_unknown || local_kind == svn_node_none) - SVN_ERR(svn_io_check_path(local_abspath, &local_kind, scratch_pool)); - } - else if (operation == svn_wc_operation_update || - operation == svn_wc_operation_switch) - { - /* For updates, the left version corresponds to the pre-update state. */ - if (left_version - && reason != svn_wc_conflict_reason_added - && reason != svn_wc_conflict_reason_replaced) - local_kind = left_version->node_kind; - else - { - /* No left version is available, so the conflict was flagged - * because of a locally added node which was not part of the - * BASE tree before the update. */ - SVN_ERR(svn_wc__db_read_kind(&local_kind, db, local_abspath, - TRUE /* allow missing */, - TRUE /* show deleted */, - FALSE /* show hidden */, scratch_pool)); - if (local_kind == svn_node_unknown || local_kind == svn_node_none) - SVN_ERR(svn_io_check_path(local_abspath, &local_kind, - scratch_pool)); - } + /* We have nothing locally to take the kind from */ + local_kind = left_version->node_kind; } else - SVN_ERR_MALFUNCTION(); + local_kind = node_kind; *desc = svn_wc_conflict_description_create_tree2(local_abspath, local_kind, operation, @@ -2031,9 +1999,14 @@ svn_wc__conflict_invoke_resolver(svn_wc_ svn_wc_conflict_result_t *result; svn_wc_conflict_description2_t *desc; svn_boolean_t resolved; + svn_node_kind_t node_kind; + + SVN_ERR(svn_wc__db_read_kind(&node_kind, db, local_abspath, TRUE, + TRUE, FALSE, scratch_pool)); SVN_ERR(read_tree_conflict_desc(&desc, - db, local_abspath, conflict_skel, + db, local_abspath, node_kind, + conflict_skel, operation, left_version, right_version, scratch_pool, scratch_pool)); @@ -2252,8 +2225,10 @@ svn_wc__read_conflicts(const apr_array_h const apr_array_header_t *locations; const svn_wc_conflict_version_t *left_version = NULL; const svn_wc_conflict_version_t *right_version = NULL; + svn_node_kind_t node_kind; - SVN_ERR(svn_wc__db_read_conflict(&conflict_skel, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict_skel, &node_kind, + db, local_abspath, scratch_pool, scratch_pool)); if (!conflict_skel) @@ -2279,9 +2254,6 @@ svn_wc__read_conflicts(const apr_array_h if (prop_conflicted) { - svn_node_kind_t node_kind - = left_version ? left_version->node_kind : svn_node_unknown; - SVN_ERR(read_prop_conflict_descs(cflcts, db, local_abspath, conflict_skel, create_tempfiles, node_kind, @@ -2306,7 +2278,8 @@ svn_wc__read_conflicts(const apr_array_h svn_wc_conflict_description2_t *desc; SVN_ERR(read_tree_conflict_desc(&desc, - db, local_abspath, conflict_skel, + db, local_abspath, node_kind, + conflict_skel, operation, left_version, right_version, result_pool, scratch_pool)); @@ -2359,6 +2332,7 @@ static svn_error_t * resolve_prop_conflict_on_node(svn_boolean_t *did_resolve, svn_wc__db_t *db, const char *local_abspath, + const svn_skel_t *conflicts, const char *conflicted_propname, svn_wc_conflict_choice_t conflict_choice, const char *merged_file, @@ -2374,18 +2348,11 @@ resolve_prop_conflict_on_node(svn_boolea apr_hash_t *old_props; apr_hash_t *resolve_from = NULL; svn_skel_t *work_items = NULL; - svn_skel_t *conflicts; svn_wc_operation_t operation; svn_boolean_t prop_conflicted; *did_resolve = FALSE; - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, - scratch_pool, scratch_pool)); - - if (!conflicts) - return SVN_NO_ERROR; - SVN_ERR(svn_wc__conflict_read_info(&operation, NULL, NULL, &prop_conflicted, NULL, db, local_abspath, conflicts, scratch_pool, scratch_pool)); @@ -2729,7 +2696,7 @@ svn_wc__mark_resolved_text_conflict(svn_ svn_skel_t *work_items; svn_skel_t *conflict; - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, local_abspath, scratch_pool, scratch_pool)); if (!conflict) @@ -2756,10 +2723,17 @@ svn_wc__mark_resolved_prop_conflicts(svn apr_pool_t *scratch_pool) { svn_boolean_t ignored_result; + svn_skel_t *conflicts; + + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, + scratch_pool, scratch_pool)); + + if (!conflicts) + return SVN_NO_ERROR; return svn_error_trace(resolve_prop_conflict_on_node( &ignored_result, - db, local_abspath, "", + db, local_abspath, conflicts, "", svn_wc_conflict_choose_merged, NULL, NULL, NULL, scratch_pool)); @@ -2834,7 +2808,7 @@ conflict_status_walker(void *baton, iterpool = svn_pool_create(scratch_pool); - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, local_abspath, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__read_conflicts(&conflicts, db, local_abspath, TRUE, @@ -2935,6 +2909,7 @@ conflict_status_walker(void *baton, SVN_ERR(resolve_prop_conflict_on_node(&did_resolve, db, local_abspath, + conflict, cd->property_name, my_choice, result Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c Sat Feb 14 11:15:05 2015 @@ -258,7 +258,7 @@ copy_versioned_file(svn_wc__db_t *db, svn_error_t *err; /* Is there a text conflict at the source path? */ - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, src_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, src_abspath, scratch_pool, scratch_pool)); err = svn_wc__conflict_read_text_conflict(&conflict_working, NULL, NULL, @@ -945,7 +945,7 @@ remove_node_conflict_markers(svn_wc__db_ { svn_skel_t *conflict; - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, src_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, src_abspath, scratch_pool, scratch_pool)); /* Do we have conflict markers that should be removed? */ Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/delete.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/delete.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/delete.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/delete.c Sat Feb 14 11:15:05 2015 @@ -135,7 +135,7 @@ create_delete_wq_items(svn_skel_t **work const apr_array_header_t *markers; int i; - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, local_abspath, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__conflict_read_markers(&markers, db, local_abspath, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/diff.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/diff.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/diff.h (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/diff.h Sat Feb 14 11:15:05 2015 @@ -39,7 +39,7 @@ extern "C" { #endif /* __cplusplus */ /* A function to diff locally added and locally copied files. - + Reports the file LOCAL_ABSPATH as ADDED file with relpath RELPATH to PROCESSOR with as parent baton PROCESSOR_PARENT_BATON. @@ -60,7 +60,7 @@ svn_wc__diff_local_only_file(svn_wc__db_ apr_pool_t *scratch_pool); /* A function to diff locally added and locally copied directories. - + Reports the directory LOCAL_ABSPATH and everything below it (limited by DEPTH) as added with relpath RELPATH to PROCESSOR with as parent baton PROCESSOR_PARENT_BATON. Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c Sat Feb 14 11:15:05 2015 @@ -881,7 +881,7 @@ read_one_entry(const svn_wc_entry_t **ne svn_skel_t *conflict; svn_boolean_t text_conflicted; svn_boolean_t prop_conflicted; - SVN_ERR(svn_wc__db_read_conflict(&conflict, db, entry_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict, NULL, db, entry_abspath, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__conflict_read_info(NULL, NULL, &text_conflicted, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/externals.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/externals.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/externals.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/externals.c Sat Feb 14 11:15:05 2015 @@ -68,6 +68,7 @@ * the revision if the revision is found. Set REV_IDX to the index in * LINE_PARTS where the revision specification starts. Remove from * LINE_PARTS the element(s) that specify the revision. + * Set REV_STR to the element that specifies the revision. * PARENT_DIRECTORY_DISPLAY and LINE are given to return a nice error * string. * @@ -76,6 +77,7 @@ */ static svn_error_t * find_and_remove_externals_revision(int *rev_idx, + const char **rev_str, const char **line_parts, int num_line_parts, svn_wc_external_item2_t *item, @@ -137,6 +139,8 @@ find_and_remove_externals_revision(int * line_parts[j] = line_parts[j+shift_count]; line_parts[num_line_parts-shift_count] = NULL; + *rev_str = apr_psprintf(pool, "-r%s", digits_ptr); + /* Found the revision, so leave the function immediately, do * not continue looking for additional revisions. */ return SVN_NO_ERROR; @@ -158,7 +162,8 @@ find_and_remove_externals_revision(int * } svn_error_t * -svn_wc_parse_externals_description3(apr_array_header_t **externals_p, +svn_wc__parse_externals_description(apr_array_header_t **externals_p, + apr_array_header_t **parser_infos_p, const char *defining_directory, const char *desc, svn_boolean_t canonicalize_url, @@ -166,6 +171,7 @@ svn_wc_parse_externals_description3(apr_ { int i; apr_array_header_t *externals = NULL; + apr_array_header_t *parser_infos = NULL; apr_array_header_t *lines = svn_cstring_split(desc, "\n\r", TRUE, pool); const char *defining_directory_display = svn_path_is_url(defining_directory) ? defining_directory : svn_dirent_local_style(defining_directory, pool); @@ -175,6 +181,10 @@ svn_wc_parse_externals_description3(apr_ if (externals_p) externals = apr_array_make(pool, 1, sizeof(svn_wc_external_item2_t *)); + if (parser_infos_p) + parser_infos = + apr_array_make(pool, 1, sizeof(svn_wc__externals_parser_info_t *)); + for (i = 0; i < lines->nelts; i++) { const char *line = APR_ARRAY_IDX(lines, i, const char *); @@ -186,10 +196,12 @@ svn_wc_parse_externals_description3(apr_ const char *token1; svn_boolean_t token0_is_url; svn_boolean_t token1_is_url; + svn_wc__externals_parser_info_t *info = NULL; /* Index into line_parts where the revision specification started. */ int rev_idx = -1; + const char *rev_str = NULL; if ((! line) || (line[0] == '#')) continue; @@ -209,6 +221,9 @@ svn_wc_parse_externals_description3(apr_ item->revision.kind = svn_opt_revision_unspecified; item->peg_revision.kind = svn_opt_revision_unspecified; + if (parser_infos) + info = apr_pcalloc(pool, sizeof(*info)); + /* * There are six different formats of externals: * @@ -240,6 +255,7 @@ svn_wc_parse_externals_description3(apr_ set item->revision to the parsed revision. */ /* ### ugh. stupid cast. */ SVN_ERR(find_and_remove_externals_revision(&rev_idx, + &rev_str, (const char **)line_parts, num_line_parts, item, defining_directory_display, @@ -290,12 +306,34 @@ svn_wc_parse_externals_description3(apr_ SVN_ERR(svn_opt_parse_path(&item->peg_revision, &item->url, token0, pool)); item->target_dir = token1; + + if (info) + { + info->format = svn_wc__external_description_format_2; + + if (rev_str) + info->rev_str = apr_pstrdup(pool, rev_str); + + if (item->peg_revision.kind != svn_opt_revision_unspecified) + info->peg_rev_str = strrchr(token0, '@'); + } } else { item->target_dir = token0; item->url = token1; item->peg_revision = item->revision; + + if (info) + { + info->format = svn_wc__external_description_format_1; + + if (rev_str) + { + info->rev_str = apr_pstrdup(pool, rev_str); + info->peg_rev_str = info->rev_str; + } + } } SVN_ERR(svn_opt_resolve_revisions(&item->peg_revision, @@ -333,15 +371,34 @@ svn_wc_parse_externals_description3(apr_ if (externals) APR_ARRAY_PUSH(externals, svn_wc_external_item2_t *) = item; + if (parser_infos) + APR_ARRAY_PUSH(parser_infos, svn_wc__externals_parser_info_t *) = info; } if (externals_p) *externals_p = externals; + if (parser_infos_p) + *parser_infos_p = parser_infos; return SVN_NO_ERROR; } svn_error_t * +svn_wc_parse_externals_description3(apr_array_header_t **externals_p, + const char *defining_directory, + const char *desc, + svn_boolean_t canonicalize_url, + apr_pool_t *pool) +{ + return svn_error_trace(svn_wc__parse_externals_description(externals_p, + NULL, + defining_directory, + desc, + canonicalize_url, + pool)); +} + +svn_error_t * svn_wc__externals_find_target_dups(apr_array_header_t **duplicate_targets, apr_array_header_t *externals, apr_pool_t *pool, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c Sat Feb 14 11:15:05 2015 @@ -541,7 +541,7 @@ prop_conflict_new(const svn_string_t **c /* How we render the conflict: - We have four sides: original, mine, incoming_base, incoming. + We have four sides: original, mine, incoming_base, incoming. We render the conflict as a 3-way diff. A diff3 API has three parts, called: @@ -750,7 +750,7 @@ svn_wc__create_prejfile(const char **tmp apr_hash_t *conflicted_props; svn_skel_t *conflicts; - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__conflict_read_info(&operation, NULL, NULL, NULL, NULL, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/questions.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/questions.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/questions.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/questions.c Sat Feb 14 11:15:05 2015 @@ -369,7 +369,7 @@ internal_conflicted_p(svn_boolean_t *tex svn_boolean_t resolved_text = FALSE; svn_boolean_t resolved_props = FALSE; - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, scratch_pool, scratch_pool)); if (!conflicts) Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c Sat Feb 14 11:15:05 2015 @@ -825,10 +825,11 @@ complete_conflict(svn_skel_t *conflict, const char *new_repos_relpath, svn_node_kind_t local_kind, svn_node_kind_t target_kind, + const svn_skel_t *delete_conflict, apr_pool_t *result_pool, apr_pool_t *scratch_pool) { - svn_wc_conflict_version_t *original_version; + const svn_wc_conflict_version_t *original_version = NULL; svn_wc_conflict_version_t *target_version; svn_boolean_t is_complete; @@ -849,8 +850,21 @@ complete_conflict(svn_skel_t *conflict, old_revision, local_kind, result_pool); - else - original_version = NULL; + else if (delete_conflict) + { + const apr_array_header_t *locations; + + SVN_ERR(svn_wc__conflict_read_info(NULL, &locations, NULL, NULL, NULL, + eb->db, local_abspath, + delete_conflict, + scratch_pool, scratch_pool)); + + if (locations) + { + original_version = APR_ARRAY_IDX(locations, 0, + const svn_wc_conflict_version_t *); + } + } target_version = svn_wc_conflict_version_create2(eb->repos_root, eb->repos_uuid, @@ -896,6 +910,7 @@ mark_directory_edited(struct dir_baton * db->old_repos_relpath, db->old_revision, db->new_repos_relpath, svn_node_dir, svn_node_dir, + NULL, db->pool, scratch_pool)); SVN_ERR(svn_wc__db_op_mark_conflict(db->edit_baton->db, db->local_abspath, @@ -930,6 +945,7 @@ mark_file_edited(struct file_baton *fb, fb->local_abspath, fb->old_repos_relpath, fb->old_revision, fb->new_repos_relpath, svn_node_file, svn_node_file, + NULL, fb->pool, scratch_pool)); SVN_ERR(svn_wc__db_op_mark_conflict(fb->edit_baton->db, @@ -1249,7 +1265,7 @@ open_root(void *edit_baton, db->old_revision, db->new_repos_relpath, svn_node_dir, svn_node_dir, - pool, pool)); + NULL, pool, pool)); SVN_ERR(svn_wc__db_op_mark_conflict(eb->db, move_src_root_abspath, tree_conflict, @@ -1878,10 +1894,7 @@ delete_entry(const char *path, scratch_pool)); SVN_ERR(complete_conflict(tree_conflict, eb, local_abspath, repos_relpath, old_revision, deleted_repos_relpath, - (kind == svn_node_dir) - ? svn_node_dir - : svn_node_file, - svn_node_none, + kind, svn_node_none, NULL, pb->pool, scratch_pool)); /* Issue a wq operation to delete the BASE_NODE data and to delete actual @@ -1934,23 +1947,17 @@ delete_entry(const char *path, eb->cancel_func, eb->cancel_baton, scratch_pool)); - do_notification(eb, local_abspath, svn_node_unknown, + do_notification(eb, local_abspath, kind, svn_wc_notify_tree_conflict, scratch_pool); } else { svn_wc_notify_action_t action = svn_wc_notify_update_delete; - svn_node_kind_t node_kind; if (pb->shadowed || pb->edit_obstructed) action = svn_wc_notify_update_shadowed_delete; - if (kind == svn_node_dir) - node_kind = svn_node_dir; - else - node_kind = svn_node_file; - - do_notification(eb, local_abspath, node_kind, action, scratch_pool); + do_notification(eb, local_abspath, kind, action, scratch_pool); } svn_pool_destroy(scratch_pool); @@ -2117,7 +2124,7 @@ add_directory(const char *path, replacement. Let's install a better tree conflict. */ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, - &move_src_op_root_abspath, + &move_src_op_root_abspath, eb->db, db->local_abspath, tree_conflict, @@ -2264,8 +2271,11 @@ add_directory(const char *path, SVN_ERR(complete_conflict(tree_conflict, eb, db->local_abspath, db->old_repos_relpath, db->old_revision, db->new_repos_relpath, - wc_kind, - svn_node_dir, + wc_kind, svn_node_dir, + pb->deletion_conflicts + ? svn_hash_gets(pb->deletion_conflicts, + db->name) + : NULL, db->pool, scratch_pool)); SVN_ERR(svn_wc__db_base_add_incomplete_directory( @@ -2858,6 +2868,11 @@ close_directory(void *dir_baton, db->old_revision, db->new_repos_relpath, svn_node_dir, svn_node_dir, + db->parent_baton->deletion_conflicts + ? svn_hash_gets( + db->parent_baton->deletion_conflicts, + db->name) + : NULL, db->pool, scratch_pool)); SVN_ERR(svn_wc__conflict_create_markers(&work_item, @@ -3081,9 +3096,8 @@ absent_node(const char *path, if (tree_conflict) SVN_ERR(complete_conflict(tree_conflict, eb, local_abspath, NULL, SVN_INVALID_REVNUM, repos_relpath, - kind, svn_node_unknown, + kind, svn_node_unknown, NULL, scratch_pool, scratch_pool)); - /* Insert an excluded node below the parent node to note that this child is absent. (This puts it in the parent db if the child is obstructed) */ @@ -3282,7 +3296,7 @@ add_file(const char *path, replacement. Let's install a better tree conflict. */ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, - &move_src_op_root_abspath, + &move_src_op_root_abspath, eb->db, fb->local_abspath, tree_conflict, @@ -3445,8 +3459,11 @@ add_file(const char *path, fb->old_repos_relpath, fb->old_revision, fb->new_repos_relpath, - wc_kind, - svn_node_file, + wc_kind, svn_node_file, + pb->deletion_conflicts + ? svn_hash_gets(pb->deletion_conflicts, + fb->name) + : NULL, fb->pool, scratch_pool)); SVN_ERR(svn_wc__db_op_mark_conflict(eb->db, @@ -3851,7 +3868,7 @@ change_file_prop(void *file_baton, fb->local_abspath, fb->old_repos_relpath, fb->old_revision, fb->new_repos_relpath, svn_node_file, svn_node_file, - fb->pool, scratch_pool)); + NULL, fb->pool, scratch_pool)); /* Create a copy of the existing (pre update) BASE node in WORKING, mark a tree conflict and handle the rest of the update as @@ -4564,6 +4581,11 @@ close_file(void *file_baton, fb->old_revision, fb->new_repos_relpath, svn_node_file, svn_node_file, + fb->dir_baton->deletion_conflicts + ? svn_hash_gets( + fb->dir_baton->deletion_conflicts, + fb->name) + : NULL, fb->pool, scratch_pool)); SVN_ERR(svn_wc__conflict_create_markers(&work_item, @@ -4734,7 +4756,7 @@ update_keywords_after_switch_cb(void *ba install_from = NULL; record_fileinfo = TRUE; } - + SVN_ERR(svn_wc__wq_build_file_install(&work_items, eb->db, local_abspath, install_from, eb->use_commit_times, @@ -4858,7 +4880,7 @@ close_edit(void *edit_baton, if (eb->switch_repos_relpath) { svn_depth_t depth; - + if (eb->requested_depth > svn_depth_empty) depth = eb->requested_depth; else Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-metadata.sql URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-metadata.sql?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-metadata.sql (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-metadata.sql Sat Feb 14 11:15:05 2015 @@ -108,7 +108,7 @@ CREATE TABLE PRISTINE ( ); CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); - + /* ------------------------------------------------------------------------- */ /* The ACTUAL_NODE table describes text changes and property changes @@ -150,7 +150,7 @@ CREATE TABLE ACTUAL_NODE ( /* if not NULL, this node is part of a changelist. */ changelist TEXT, - + /* ### need to determine values. "unknown" (no info), "admin" (they ### used something like 'svn edit'), "noticed" (saw a mod while ### scanning the filesystem). */ @@ -170,7 +170,7 @@ CREATE TABLE ACTUAL_NODE ( /* stsp: This is meant for text conflicts, right? What about property conflicts? Why do we need these in a column to refer to the pristine store? Can't we just parse the checksums from - conflict_data as well? + conflict_data as well? rhuijben: Because that won't allow triggers to handle refcounts. We would have to scan all conflict skels before cleaning up the a single file from the pristine stor */ @@ -200,7 +200,7 @@ CREATE TABLE LOCK ( lock_owner TEXT, lock_comment TEXT, lock_date INTEGER, /* an APR date/time (usec since 1970) */ - + PRIMARY KEY (repos_id, repos_relpath) ); @@ -553,7 +553,7 @@ CREATE TABLE EXTERNALS ( /* the kind of the external. */ kind TEXT NOT NULL, - /* The local relpath of the directory NODE defining this external + /* The local relpath of the directory NODE defining this external (Defaults to the parent directory of the file external after upgrade) */ def_local_relpath TEXT NOT NULL, @@ -774,7 +774,7 @@ LIMIT 1 /* ------------------------------------------------------------------------- */ -/* Format 28 involves no schema changes, it only converts MD5 pristine +/* Format 28 involves no schema changes, it only converts MD5 pristine references to SHA1. */ -- STMT_UPGRADE_TO_28 Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-queries.sql URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-queries.sql?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-queries.sql (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-queries.sql Sat Feb 14 11:15:05 2015 @@ -253,7 +253,7 @@ WHERE wc_id = ?1 AND IS_STRICT_DESCENDAN -- STMT_DELETE_WORKING_OP_DEPTH DELETE FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND op_depth = ?3 @@ -262,15 +262,12 @@ The op_root must exist (or there is no l always has presence 'normal' */ -- STMT_SELECT_LAYER_FOR_REPLACE SELECT s.local_relpath, s.kind, - RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, 'normal', 0 + RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, 'normal' FROM nodes s WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 UNION ALL SELECT s.local_relpath, s.kind, - RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, d.presence, - EXISTS(SELECT * FROM nodes sh - WHERE sh.wc_id = ?1 AND sh.op_depth > ?5 - AND sh.local_relpath = d.local_relpath) shadowed + RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, d.presence FROM nodes s LEFT OUTER JOIN nodes d ON d.wc_id= ?1 AND d.op_depth = ?5 AND d.local_relpath = drp @@ -295,17 +292,16 @@ INSERT OR REPLACE INTO nodes ( changed_author, checksum, properties, translated_size, last_mod_time, symlink_target, moved_here, moved_to ) SELECT - wc_id, ?4 /*local_relpath */, ?5 /*op_depth*/, ?6 /* parent_relpath */, - repos_id, - repos_path, revision, presence, depth, kind, changed_revision, - changed_date, changed_author, checksum, properties, translated_size, - last_mod_time, symlink_target, 1, - (SELECT dst.moved_to FROM nodes AS dst - WHERE dst.wc_id = ?1 - AND dst.local_relpath = ?4 - AND dst.op_depth = ?5) -FROM nodes -WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 + s.wc_id, ?4 /*local_relpath */, ?5 /*op_depth*/, ?6 /* parent_relpath */, + s.repos_id, + s.repos_path, s.revision, s.presence, s.depth, s.kind, s.changed_revision, + s.changed_date, s.changed_author, s.checksum, s.properties, + CASE WHEN d.checksum=s.checksum THEN d.translated_size END, + CASE WHEN d.checksum=s.checksum THEN d.last_mod_time END, + s.symlink_target, 1, d.moved_to +FROM nodes s +LEFT JOIN nodes d ON d.wc_id=?1 AND d.local_relpath=?4 AND d.op_depth=?5 +WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 -- STMT_SELECT_NO_LONGER_MOVED_RV SELECT d.local_relpath, RELPATH_SKIP_JOIN(?2, ?4, d.local_relpath) srp, @@ -327,7 +323,7 @@ ORDER BY d.local_relpath DESC -- STMT_SELECT_OP_DEPTH_CHILDREN SELECT local_relpath, kind FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND presence != MAP_BASE_DELETED @@ -336,7 +332,7 @@ ORDER BY local_relpath -- STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS SELECT local_relpath, kind FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND presence IN (MAP_NORMAL, MAP_INCOMPLETE) @@ -470,7 +466,7 @@ SELECT (SELECT b.presence FROM nodes AS WHERE b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0), work.presence, work.op_depth, moved.moved_to FROM nodes_current AS work -LEFT OUTER JOIN nodes AS moved +LEFT OUTER JOIN nodes AS moved ON moved.wc_id = work.wc_id AND moved.local_relpath = work.local_relpath AND moved.moved_to IS NOT NULL @@ -547,7 +543,7 @@ UPDATE nodes SET repos_id = ?4, dav_cach WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) OR (wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) AND repos_id = ?3) - + -- STMT_UPDATE_LOCK_REPOS_ID UPDATE lock SET repos_id = ?2 @@ -804,7 +800,7 @@ WHERE wc_id = ?1 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND (changelist IS NULL OR NOT EXISTS (SELECT 1 FROM nodes_current c - WHERE c.wc_id = ?1 + WHERE c.wc_id = ?1 AND c.local_relpath = actual_node.local_relpath AND c.kind = MAP_FILE)) Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc.h (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc.h Sat Feb 14 11:15:05 2015 @@ -158,7 +158,7 @@ extern "C" { * Bumped in r1395109. * * == 1.8.x shipped with format 31 - * + * * Please document any further format changes here. */ Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c Sat Feb 14 11:15:05 2015 @@ -611,8 +611,7 @@ blank_ibb(insert_base_baton_t *pibb) was recorded, otherwise to FALSE. */ static svn_error_t * -db_extend_parent_delete(svn_boolean_t *added_delete, - svn_wc__db_wcroot_t *wcroot, +db_extend_parent_delete(svn_wc__db_wcroot_t *wcroot, const char *local_relpath, svn_node_kind_t kind, int op_depth, @@ -625,9 +624,6 @@ db_extend_parent_delete(svn_boolean_t *a SVN_ERR_ASSERT(local_relpath[0]); - if (added_delete) - *added_delete = FALSE; - SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb, STMT_SELECT_LOWEST_WORKING_NODE)); SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, parent_relpath, @@ -654,9 +650,6 @@ db_extend_parent_delete(svn_boolean_t *a local_relpath, parent_op_depth, parent_relpath, kind_map, kind)); SVN_ERR(svn_sqlite__update(NULL, stmt)); - - if (added_delete) - *added_delete = TRUE; } } @@ -881,8 +874,7 @@ insert_base_node(const insert_base_baton || (pibb->status == svn_wc__db_status_incomplete)) && ! pibb->file_external) { - SVN_ERR(db_extend_parent_delete(NULL, - wcroot, local_relpath, + SVN_ERR(db_extend_parent_delete(wcroot, local_relpath, pibb->kind, 0, scratch_pool)); } @@ -4878,15 +4870,12 @@ svn_wc__db_op_copy_layer_internal(svn_wc { const char *src_relpath; const char *dst_relpath; - svn_boolean_t exists; svn_pool_clear(iterpool); src_relpath = svn_sqlite__column_text(stmt, 0, iterpool); dst_relpath = svn_sqlite__column_text(stmt, 2, iterpool); - exists = !svn_sqlite__column_is_null(stmt, 3); - err = svn_sqlite__bindf(stmt2, "isdsds", wcroot->wc_id, src_relpath, src_op_depth, dst_relpath, dst_op_depth, @@ -4899,21 +4888,11 @@ svn_wc__db_op_copy_layer_internal(svn_wc if (err) break; - if (strlen(dst_relpath) > strlen(dst_op_relpath)) + /* The node can't be deleted where it is added, so extension of + an existing shadowing is only interesting 2 levels deep. */ + if (relpath_depth(dst_relpath) > (dst_op_depth+1)) { - svn_boolean_t added_delete = FALSE; - svn_node_kind_t kind = svn_sqlite__column_token(stmt, 1, kind_map); - - /* The op root can't be shadowed, so extension of a parent delete - is only needed when the parent can be deleted */ - if (relpath_depth(dst_relpath) > (dst_op_depth+1)) - { - err = db_extend_parent_delete(&added_delete, wcroot, dst_relpath, - kind, dst_op_depth, iterpool); - - if (err) - break; - } + svn_boolean_t exists = !svn_sqlite__column_is_null(stmt, 3); if (exists) { @@ -4921,28 +4900,19 @@ svn_wc__db_op_copy_layer_internal(svn_wc presence = svn_sqlite__column_token(stmt, 3, presence_map); - if (presence == svn_wc__db_status_not_present) + if (presence != svn_wc__db_status_normal) exists = FALSE; } - /* ### Fails in a few tests... Needs further research */ - /*SVN_ERR_ASSERT(!(exists && added_delete));*/ - if (!exists) { - svn_boolean_t shadowed; + svn_node_kind_t kind = svn_sqlite__column_token(stmt, 1, kind_map); - shadowed = svn_sqlite__column_int(stmt, 4); + err = db_extend_parent_delete(wcroot, dst_relpath, + kind, dst_op_depth, iterpool); - /*if (!shadowed && !added_delete) - { - err = svn_error_createf( - SVN_ERR_WC_PATH_UNEXPECTED_STATUS, NULL, - _("Node '%s' was unexpectedly added unshadowed"), - path_for_error_message(wcroot, dst_relpath, - iterpool)); - break; - }*/ + if (err) + break; } } @@ -5010,7 +4980,7 @@ svn_wc__db_op_copy_layer_internal(svn_wc SVN_ERR(svn_error_compose_create(err, svn_sqlite__reset(stmt))); /* ### TODO: Did we handle ACTUAL as intended? */ - + SVN_ERR(add_work_items(wcroot->sdb, work_items, scratch_pool)); if (conflict) @@ -6796,7 +6766,7 @@ op_revert_txn(void *baton, } else { - SVN_ERR(svn_wc__db_read_conflict_internal(&conflict, wcroot, + SVN_ERR(svn_wc__db_read_conflict_internal(&conflict, NULL, wcroot, local_relpath, scratch_pool, scratch_pool)); } @@ -7024,7 +6994,7 @@ op_revert_recursive_txn(void *baton, STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE)); SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath)); SVN_ERR(svn_sqlite__step_done(stmt)); - + SVN_ERR(svn_sqlite__get_statement( &stmt, wcroot->sdb, STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE)); @@ -13889,6 +13859,7 @@ svn_wc__db_get_conflict_marker_files(apr svn_error_t * svn_wc__db_read_conflict(svn_skel_t **conflict, + svn_node_kind_t *kind, svn_wc__db_t *db, const char *local_abspath, apr_pool_t *result_pool, @@ -13902,14 +13873,15 @@ svn_wc__db_read_conflict(svn_skel_t **co local_abspath, scratch_pool, scratch_pool)); VERIFY_USABLE_WCROOT(wcroot); - return svn_error_trace(svn_wc__db_read_conflict_internal(conflict, wcroot, - local_relpath, + return svn_error_trace(svn_wc__db_read_conflict_internal(conflict, kind, + wcroot, local_relpath, result_pool, scratch_pool)); } svn_error_t * svn_wc__db_read_conflict_internal(svn_skel_t **conflict, + svn_node_kind_t *kind, svn_wc__db_wcroot_t *wcroot, const char *local_relpath, apr_pool_t *result_pool, @@ -13918,6 +13890,9 @@ svn_wc__db_read_conflict_internal(svn_sk svn_sqlite__stmt_t *stmt; svn_boolean_t have_row; + if (kind) + *kind = svn_node_none; + /* Check if we have a conflict in ACTUAL */ SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb, STMT_SELECT_ACTUAL_NODE)); @@ -13925,12 +13900,13 @@ svn_wc__db_read_conflict_internal(svn_sk SVN_ERR(svn_sqlite__step(&have_row, stmt)); - if (! have_row) + if (!have_row || kind) { /* Do this while stmt is still open to avoid closing the sqlite transaction and then reopening. */ svn_sqlite__stmt_t *stmt_node; svn_error_t *err; + svn_boolean_t have_info = FALSE; err = svn_sqlite__get_statement(&stmt_node, wcroot->sdb, STMT_SELECT_NODE_INFO); @@ -13942,25 +13918,47 @@ svn_wc__db_read_conflict_internal(svn_sk local_relpath); if (!err) - err = svn_sqlite__step(&have_row, stmt_node); + err = svn_sqlite__step(&have_info, stmt_node); + + if (!err && kind && have_info) + { + svn_wc__db_status_t status; + int op_depth = svn_sqlite__column_int(stmt_node, 0); + + status = svn_sqlite__column_token(stmt_node, 3, presence_map); + + if (op_depth > 0) + err = convert_to_working_status(&status, status); + + if (!err && (status == svn_wc__db_status_normal + || status == svn_wc__db_status_added + || status == svn_wc__db_status_deleted + || status == svn_wc__db_status_incomplete)) + { + *kind = svn_sqlite__column_token(stmt_node, 4, kind_map); + } + } if (stmt_node) err = svn_error_compose_create(err, svn_sqlite__reset(stmt_node)); - SVN_ERR(svn_error_compose_create(err, svn_sqlite__reset(stmt))); - - if (have_row) + if (!have_row || err) { - *conflict = NULL; - return SVN_NO_ERROR; - } + SVN_ERR(svn_error_compose_create(err, svn_sqlite__reset(stmt))); - return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL, - _("The node '%s' was not found."), + if (have_info) + { + *conflict = NULL; + return SVN_NO_ERROR; + } + + return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL, + _("The node '%s' was not found."), path_for_error_message(wcroot, local_relpath, scratch_pool)); + } } { @@ -16280,7 +16278,7 @@ static int compare_queue_items(const void *v1, const void *v2) { - const commit_queue_item_t *cqi1 + const commit_queue_item_t *cqi1 = *(const commit_queue_item_t **)v1; const commit_queue_item_t *cqi2 = *(const commit_queue_item_t **)v2; Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.h (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.h Sat Feb 14 11:15:05 2015 @@ -2350,7 +2350,8 @@ svn_wc__db_get_conflict_marker_files(apr apr_pool_t *scratch_pool); /* Read the conflict information recorded on LOCAL_ABSPATH in *CONFLICT, - an editable conflict skel. + an editable conflict skel. If kind is not NULL, also read the node kind + in *KIND. (SHOW_HIDDEN: false, SHOW_DELETED: true) If the node exists, but does not have a conflict set *CONFLICT to NULL, otherwise return a SVN_ERR_WC_PATH_NOT_FOUND error. @@ -2359,6 +2360,7 @@ svn_wc__db_get_conflict_marker_files(apr SCRATCH_POOL */ svn_error_t * svn_wc__db_read_conflict(svn_skel_t **conflict, + svn_node_kind_t *kind, svn_wc__db_t *db, const char *local_abspath, apr_pool_t *result_pool, @@ -3485,7 +3487,7 @@ svn_wc__db_resolve_delete_raise_moved_aw /* Like svn_wc__db_resolve_delete_raise_moved_away this should be combined. - + ### LOCAL_ABSPATH specifies the move origin, but the move origin ### is not necessary unique enough. This function needs an op_root_abspath ### argument to differentiate between different origins. Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_private.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_private.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_private.h (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_private.h Sat Feb 14 11:15:05 2015 @@ -328,6 +328,7 @@ svn_wc__db_fetch_repos_info(const char * DB+LOCAL_ABSPATH, and outputting relpaths instead of abspaths. */ svn_error_t * svn_wc__db_read_conflict_internal(svn_skel_t **conflict, + svn_node_kind_t *kind, svn_wc__db_wcroot_t *wcroot, const char *local_relpath, apr_pool_t *result_pool, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_update_move.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_update_move.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_update_move.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_update_move.c Sat Feb 14 11:15:05 2015 @@ -377,7 +377,8 @@ create_tree_conflict(svn_skel_t **confli child_relpath, scratch_pool); } - err = svn_wc__db_read_conflict_internal(&conflict, wcroot, local_relpath, + err = svn_wc__db_read_conflict_internal(&conflict, NULL, + wcroot, local_relpath, result_pool, scratch_pool); if (err && err->apr_err != SVN_ERR_WC_PATH_NOT_FOUND) return svn_error_trace(err); @@ -1364,8 +1365,8 @@ get_tc_info(svn_wc_operation_t *operatio svn_skel_t *conflict_skel; /* Check for tree conflict on src. */ - SVN_ERR(svn_wc__db_read_conflict(&conflict_skel, db, - src_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflict_skel, NULL, + db, src_abspath, scratch_pool, scratch_pool)); if (!conflict_skel) return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL, @@ -1941,6 +1942,7 @@ depth_sufficient_to_bump(svn_boolean_t * static svn_error_t * bump_mark_tree_conflict(svn_wc__db_wcroot_t *wcroot, const char *move_src_root_relpath, + int src_op_depth, const char *move_src_op_root_relpath, const char *move_dst_op_root_relpath, svn_wc__db_t *db, @@ -1963,12 +1965,12 @@ bump_mark_tree_conflict(svn_wc__db_wcroo SVN_ERR(verify_write_lock(wcroot, move_src_root_relpath, scratch_pool)); /* Read new (post-update) information from the new move source BASE node. */ - SVN_ERR(svn_wc__db_base_get_info_internal(NULL, &new_kind, &new_rev, - &new_repos_relpath, &repos_id, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - wcroot, move_src_op_root_relpath, - scratch_pool, scratch_pool)); + SVN_ERR(svn_wc__db_depth_get_info(NULL, &new_kind, &new_rev, + &new_repos_relpath, &repos_id, + NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, + wcroot, move_src_op_root_relpath, + src_op_depth, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__db_fetch_repos_info(&repos_root_url, &repos_uuid, wcroot, repos_id, scratch_pool)); @@ -2104,6 +2106,7 @@ bump_moved_layer(svn_boolean_t *recurse, svn_boolean_t have_row; svn_skel_t *conflict; svn_boolean_t can_bump; + const char *src_root_relpath; SVN_ERR(verify_write_lock(wcroot, local_relpath, scratch_pool)); @@ -2142,24 +2145,21 @@ bump_moved_layer(svn_boolean_t *recurse, can_bump = FALSE; } - { - const char *src_root_relpath = src_relpath; - while (relpath_depth(src_root_relpath) > src_del_depth) - src_root_relpath = svn_relpath_dirname(src_root_relpath, scratch_pool); - - if (!can_bump) - { - SVN_ERR(bump_mark_tree_conflict(wcroot, src_relpath, - src_root_relpath, dst_relpath, - db, scratch_pool)); + src_root_relpath = svn_relpath_limit(src_relpath, src_del_depth, + scratch_pool); - return SVN_NO_ERROR; - } + if (!can_bump) + { + SVN_ERR(bump_mark_tree_conflict(wcroot, src_relpath, op_depth, + src_root_relpath, dst_relpath, + db, scratch_pool)); - SVN_ERR(svn_wc__db_read_conflict_internal(&conflict, wcroot, - src_root_relpath, - scratch_pool, scratch_pool)); - } + return SVN_NO_ERROR; + } + + SVN_ERR(svn_wc__db_read_conflict_internal(&conflict, NULL, wcroot, + src_root_relpath, + scratch_pool, scratch_pool)); /* ### TODO: check this is the right sort of tree-conflict? */ if (!conflict) @@ -2315,7 +2315,7 @@ svn_wc__db_bump_moved_away(svn_wc__db_wc if (locked) { SVN_ERR(bump_mark_tree_conflict(wcroot, - move_src_root_relpath, + move_src_root_relpath, 0, delete_relpath, move_dst_op_root_relpath, db, scratch_pool)); Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/workqueue.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/workqueue.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_wc/workqueue.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/workqueue.c Sat Feb 14 11:15:05 2015 @@ -1107,7 +1107,7 @@ run_prej_install(work_item_baton_t *wqb, SVN_ERR(svn_wc__db_from_relpath(&local_abspath, db, wri_abspath, local_relpath, scratch_pool, scratch_pool)); - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, scratch_pool, scratch_pool)); SVN_ERR(svn_wc__conflict_read_prop_conflict(&prejfile_abspath, @@ -1287,7 +1287,7 @@ run_set_text_conflict_markers(work_item_ /* Check if we should combine with a property conflict... */ svn_skel_t *conflicts; - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, scratch_pool, scratch_pool)); if (! conflicts) @@ -1353,7 +1353,7 @@ run_set_property_conflict_marker(work_it svn_skel_t *conflicts; apr_hash_t *prop_names; - SVN_ERR(svn_wc__db_read_conflict(&conflicts, db, local_abspath, + SVN_ERR(svn_wc__db_read_conflict(&conflicts, NULL, db, local_abspath, scratch_pool, scratch_pool)); if (! conflicts) Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/lock.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/lock.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/lock.c (original) +++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/lock.c Sat Feb 14 11:15:05 2015 @@ -805,7 +805,7 @@ append_locks(dav_lockdb *lockdb, to return the lock details? Add yet another custom header? - Just an header doesn't handle a full error chain... + Just an header doesn't handle a full error chain... ### Current behavior: we don't report an error. */ Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/status.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/status.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/status.c (original) +++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/status.c Sat Feb 14 11:15:05 2015 @@ -57,7 +57,7 @@ int dav_svn__status(request_rec *r) ap_set_content_type(r, "text/html; charset=ISO-8859-1"); - ap_rvputs(r, + ap_rvputs(r, DOCTYPE_HTML_3_2 "<html><head>\n" "<title>Apache SVN Status</title>\n" Modified: subversion/branches/remove-log-addressing/subversion/svn/auth-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/auth-cmd.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/auth-cmd.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/auth-cmd.c Sat Feb 14 11:15:05 2015 @@ -373,7 +373,7 @@ svn_cl__auth(apr_getopt_t *os, void *bat SVN_ERR(svn_cmdline_printf(pool, _("Credentials cache in '%s' is empty\n"), svn_dirent_local_style(config_path, pool))); - else + else return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, 0, _("Credentials cache in '%s' contains " "no matching credentials"), Modified: subversion/branches/remove-log-addressing/subversion/svn/cl.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/cl.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/cl.h (original) +++ subversion/branches/remove-log-addressing/subversion/svn/cl.h Sat Feb 14 11:15:05 2015 @@ -248,6 +248,7 @@ typedef struct svn_cl__opt_state_t svn_boolean_t remove_ignored; /* remove ignored items */ svn_boolean_t no_newline; /* do not output the trailing newline */ svn_boolean_t show_passwords; /* show cached passwords */ + svn_boolean_t pin_externals; /* pin externals to last-changed revisions */ } svn_cl__opt_state_t; Modified: subversion/branches/remove-log-addressing/subversion/svn/copy-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/copy-cmd.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/copy-cmd.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/copy-cmd.c Sat Feb 14 11:15:05 2015 @@ -167,8 +167,10 @@ svn_cl__copy(apr_getopt_t *os, SVN_ERR(svn_cl__make_log_msg_baton(&(ctx->log_msg_baton3), opt_state, NULL, ctx->config, pool)); - err = svn_client_copy6(sources, dst_path, TRUE, + err = svn_client_copy7(sources, dst_path, TRUE, opt_state->parents, opt_state->ignore_externals, + opt_state->pin_externals, + NULL, /* pin all externals */ opt_state->revprop_table, (opt_state->quiet ? NULL : svn_cl__print_commit_info), NULL, Modified: subversion/branches/remove-log-addressing/subversion/svn/info-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/info-cmd.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/info-cmd.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/info-cmd.c Sat Feb 14 11:15:05 2015 @@ -391,14 +391,14 @@ print_info(void *baton, if (info->wc_info->moved_from_abspath) SVN_ERR(svn_cmdline_printf(pool, _("Moved From: %s\n"), svn_cl__local_style_skip_ancestor( - path_prefix, + path_prefix, info->wc_info->moved_from_abspath, pool))); if (info->wc_info->moved_to_abspath) SVN_ERR(svn_cmdline_printf(pool, _("Moved To: %s\n"), svn_cl__local_style_skip_ancestor( - path_prefix, + path_prefix, info->wc_info->moved_to_abspath, pool))); } Modified: subversion/branches/remove-log-addressing/subversion/svn/mergeinfo-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/mergeinfo-cmd.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/mergeinfo-cmd.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/mergeinfo-cmd.c Sat Feb 14 11:15:05 2015 @@ -240,7 +240,7 @@ mergeinfo_summary( target_is_wc = (! svn_path_is_url(target_path_or_url)) && (target_revision->kind == svn_opt_revision_unspecified - || target_revision->kind == svn_opt_revision_working + || target_revision->kind == svn_opt_revision_working || target_revision->kind == svn_opt_revision_base); SVN_ERR(svn_client_get_merging_summary( &is_reintegration, @@ -304,10 +304,10 @@ mergeinfo_log(svn_boolean_t finding_merg baton->show_diff = FALSE; baton->depth = depth; baton->diff_extensions = NULL; - baton->merge_stack = NULL; + baton->merge_stack = NULL; baton->search_patterns = NULL; baton->pool = pool; - log_receiver_baton = baton; + log_receiver_baton = baton; } else { Modified: subversion/branches/remove-log-addressing/subversion/svn/notify.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/notify.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/notify.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/notify.c Sat Feb 14 11:15:05 2015 @@ -129,7 +129,7 @@ svn_cl__conflict_stats_resolved(svn_cl__ static const char * remaining_str(apr_pool_t *pool, int n_remaining) { - return apr_psprintf(pool, Q_("%d remaining", + return apr_psprintf(pool, Q_("%d remaining", "%d remaining", n_remaining), n_remaining); Modified: subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c Sat Feb 14 11:15:05 2015 @@ -490,7 +490,7 @@ svn_cl__propget(apr_getopt_t *os, { svn_error_t *err; err = svn_error_createf(SVN_ERR_PROPERTY_NOT_FOUND, NULL, - _("Property '%s' not found on '%s'"), + _("Property '%s' not found on '%s'"), pname_utf8, target); svn_handle_warning2(stderr, err, "svn: "); svn_error_clear(err); Modified: subversion/branches/remove-log-addressing/subversion/svn/svn.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/svn.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svn/svn.c (original) +++ subversion/branches/remove-log-addressing/subversion/svn/svn.c Sat Feb 14 11:15:05 2015 @@ -144,7 +144,8 @@ typedef enum svn_cl__longopt_t { opt_remove_unversioned, opt_remove_ignored, opt_no_newline, - opt_show_passwords + opt_show_passwords, + opt_pin_externals, } svn_cl__longopt_t; @@ -418,6 +419,10 @@ const apr_getopt_option_t svn_cl__option {"remove-ignored", opt_remove_ignored, 0, N_("remove ignored items")}, {"no-newline", opt_no_newline, 0, N_("do not output the trailing newline")}, {"show-passwords", opt_show_passwords, 0, N_("show cached passwords")}, + {"pin-externals", opt_pin_externals, 0, + N_("pin externals with no explicit revision to their\n" + " " + "current revision (recommended when tagging)")}, /* Long-opt Aliases * @@ -498,7 +503,7 @@ const svn_opt_subcommand_desc2_t svn_cl_ " expand them.\n"), { opt_remove, opt_show_passwords }, { {opt_remove, N_("remove matching authentication credentials")} } - + }, { "blame", svn_cl__blame, {"praise", "annotate", "ann"}, N_ @@ -608,7 +613,8 @@ const svn_opt_subcommand_desc2_t svn_cl_ " contact the repository. As such, they may not, by default, be able\n" " to propagate merge tracking information from the source of the copy\n" " to the destination.\n"), - {'r', 'q', opt_ignore_externals, opt_parents, SVN_CL__LOG_MSG_OPTIONS} }, + {'r', 'q', opt_ignore_externals, opt_parents, SVN_CL__LOG_MSG_OPTIONS, + opt_pin_externals} }, { "delete", svn_cl__delete, {"del", "remove", "rm"}, N_ ("Remove files and directories from version control.\n" @@ -2390,6 +2396,9 @@ sub_main(int *exit_code, int argc, const case opt_show_passwords: opt_state.show_passwords = TRUE; break; + case opt_pin_externals: + opt_state.pin_externals = TRUE; + break; default: /* Hmmm. Perhaps this would be a good place to squirrel away opts that commands like svn diff might need. Hmmm indeed. */ Modified: subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c (original) +++ subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c Sat Feb 14 11:15:05 2015 @@ -895,7 +895,7 @@ repos_notify_handler(void *baton, if (b->error_summary && notify->revision != SVN_INVALID_REVNUM) { struct verification_error *verr; - + verr = apr_palloc(b->result_pool, sizeof(*verr)); verr->rev = notify->revision; verr->err = svn_error_dup(notify->err); @@ -1869,7 +1869,7 @@ subcommand_verify(apr_getopt_t *os, void struct verification_error *verr; svn_error_t *err; const char *rev_str; - + svn_pool_clear(iterpool); verr = APR_ARRAY_IDX(notify_baton.error_summary, i, @@ -1881,7 +1881,7 @@ subcommand_verify(apr_getopt_t *os, void { char buf[512]; const char *message; - + message = svn_err_best_message(err, buf, sizeof(buf)); svn_error_clear(svn_stream_printf(notify_baton.feedback_stream, iterpool, Modified: subversion/branches/remove-log-addressing/subversion/svnserve/logger.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnserve/logger.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svnserve/logger.c (original) +++ subversion/branches/remove-log-addressing/subversion/svnserve/logger.c Sat Feb 14 11:15:05 2015 @@ -58,7 +58,7 @@ logger__create_for_stderr(logger_t **log { logger_t *result = apr_pcalloc(pool, sizeof(*result)); result->pool = svn_pool_create(pool); - + SVN_ERR(svn_stream_for_stderr(&result->stream, pool)); SVN_ERR(svn_mutex__init(&result->mutex, TRUE, pool)); @@ -74,7 +74,7 @@ logger__create(logger_t **logger, { logger_t *result = apr_pcalloc(pool, sizeof(*result)); apr_file_t *file; - + SVN_ERR(svn_io_file_open(&file, filename, APR_WRITE | APR_CREATE | APR_APPEND, APR_OS_DEFAULT, pool)); @@ -145,7 +145,7 @@ logger__log_error(logger_t *logger, } svn_pool_clear(logger->pool); - + svn_error_clear(svn_mutex__unlock(logger->mutex, SVN_NO_ERROR)); } } Modified: subversion/branches/remove-log-addressing/subversion/svnserve/serve.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnserve/serve.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svnserve/serve.c (original) +++ subversion/branches/remove-log-addressing/subversion/svnserve/serve.c Sat Feb 14 11:15:05 2015 @@ -2179,7 +2179,7 @@ static svn_error_t *log_receiver(void *b } } SVN_ERR(svn_ra_svn__end_list(conn, pool)); - + /* send LOG_ENTRY main members */ SVN_ERR(svn_ra_svn__write_data_log_entry(conn, pool, log_entry->revision, @@ -2856,7 +2856,7 @@ static svn_error_t *lock_many(svn_ra_svn ¤t_rev); if (write_err) break; - + full_path = svn_fspath__join(b->repository->fs_path->data, svn_relpath_canonicalize(path, subpool), subpool); @@ -3755,7 +3755,7 @@ construct_server_baton(server_baton_t ** server_baton_t *b = apr_pcalloc(conn_pool, sizeof(*b)); fs_warning_baton_t *warn_baton; svn_stringbuf_t *cap_log = svn_stringbuf_create_empty(scratch_pool); - + b->repository = apr_pcalloc(conn_pool, sizeof(*b->repository)); b->repository->username_case = params->username_case; b->repository->base = params->base; @@ -3857,7 +3857,7 @@ construct_server_baton(server_baton_t ** err = handle_config_error(find_repos(client_url, params->root, b->vhost, b->read_only, params->cfg, b->repository, params->config_pool, - params->authz_pool, params->fs_config, + params->authz_pool, params->fs_config, conn_pool, scratch_pool), b); if (!err) Modified: subversion/branches/remove-log-addressing/subversion/svnserve/server.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnserve/server.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svnserve/server.h (original) +++ subversion/branches/remove-log-addressing/subversion/svnserve/server.h Sat Feb 14 11:15:05 2015 @@ -40,7 +40,7 @@ extern "C" { #include "private/svn_mutex.h" #include "private/svn_repos_private.h" #include "private/svn_subr_private.h" - + enum username_case_type { CASE_FORCE_UPPER, CASE_FORCE_LOWER, CASE_ASIS }; enum authn_type { UNAUTHENTICATED, AUTHENTICATED }; @@ -70,7 +70,7 @@ typedef struct repository_t { enum access_type auth_access; /* access granted to authenticated users */ enum access_type anon_access; /* access granted to annonymous users */ - + } repository_t; typedef struct client_info_t { @@ -186,7 +186,7 @@ typedef struct connection_t the new thread decrease it and when it reaches 0 the pool can be released. */ svn_atomic_t ref_count; - + } connection_t; /* Return a client_info_t structure allocated in POOL and initialize it Modified: subversion/branches/remove-log-addressing/subversion/svnserve/svnserve.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnserve/svnserve.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/svnserve/svnserve.c (original) +++ subversion/branches/remove-log-addressing/subversion/svnserve/svnserve.c Sat Feb 14 11:15:05 2015 @@ -126,7 +126,7 @@ enum run_mode { * * Since very slow connections will hog a full thread for a potentially * long time before timing out, be sure to not set this limit too low. - * + * * On the other hand, keep in mind that every thread will allocate up to * 4MB of unused RAM in the APR allocator of its root pool. 32 bit servers * must hence do with fewer threads. @@ -150,7 +150,7 @@ enum run_mode { * * Larger values improve scalability with lots of small requests coming * on over long latency networks. - * + * * The OS may actually use a lower limit than specified here. */ #define ACCEPT_BACKLOG 128 @@ -466,7 +466,7 @@ static apr_status_t redirect_stdout(void /* Wait for the next client connection to come in from SOCK. Allocate * the connection in a root pool from CONNECTION_POOLS and assign PARAMS. * Return the connection object in *CONNECTION. - * + * * Use HANDLING_MODE for proper internal cleanup. */ static svn_error_t * @@ -477,30 +477,30 @@ accept_connection(connection_t **connect apr_pool_t *pool) { apr_status_t status; - + /* Non-standard pool handling. The main thread never blocks to join * the connection threads so it cannot clean up after each one. So * separate pools that can be cleared at thread exit are used. */ - + apr_pool_t *connection_pool = svn_pool_create(pool); *connection = apr_pcalloc(connection_pool, sizeof(**connection)); (*connection)->pool = connection_pool; (*connection)->params = params; (*connection)->ref_count = 1; - + do { #ifdef WIN32 if (winservice_is_stopping()) exit(0); #endif - + status = apr_socket_accept(&(*connection)->usock, sock, connection_pool); if (handling_mode == connection_mode_fork) { apr_proc_t proc; - + /* Collect any zombie child processes. */ while (apr_proc_wait_all_procs(&proc, NULL, NULL, APR_NOWAIT, connection_pool) == APR_CHILD_DONE) @@ -510,7 +510,7 @@ accept_connection(connection_t **connect while (APR_STATUS_IS_EINTR(status) || APR_STATUS_IS_ECONNABORTED(status) || APR_STATUS_IS_ECONNRESET(status)); - + return status ? svn_error_wrap_apr(status, _("Can't accept client connection")) : SVN_NO_ERROR; @@ -602,7 +602,7 @@ static void * APR_THREAD_FUNC serve_thre close_connection(connection); else apr_thread_pool_push(threads, serve_thread, connection, 0, NULL); - + return NULL; } @@ -985,7 +985,7 @@ sub_main(int *exit_code, int argc, const SVN_ERR(svn_repos__config_pool_get(¶ms.cfg, NULL, params.config_pool, - config_filename, + config_filename, TRUE, /* must_exist */ FALSE, /* names_case_sensitive */ NULL, Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/blame_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/blame_tests.py?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/tests/cmdline/blame_tests.py (original) +++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/blame_tests.py Sat Feb 14 11:15:05 2015 @@ -951,12 +951,12 @@ def blame_youngest_to_oldest(sbox): line = "New contents for iota\n" svntest.main.file_append(iota, line) sbox.simple_commit() - + # Move the file, to check that the operation will peg correctly. iota_moved = sbox.ospath('iota_moved') sbox.simple_move('iota', 'iota_moved') sbox.simple_commit() - + # Delete a line. open(iota_moved, 'w').write(line) sbox.simple_commit() Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/checkout_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/checkout_tests.py?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/tests/cmdline/checkout_tests.py (original) +++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/checkout_tests.py Sat Feb 14 11:15:05 2015 @@ -707,7 +707,7 @@ def checkout_peg_rev_date(sbox): expected_output, expected_wc) - # now try another checkout with repo@r1_string + # now try another checkout with repo@r1_string checkout_target = sbox.add_wc_path('checkout2') os.mkdir(checkout_target) @@ -1160,9 +1160,9 @@ def checkout_wc_from_drive(sbox): 'D/G/tau' : Item(contents="This is the file 'tau'.\n"), 'D/G/pi' : Item(contents="This is the file 'pi'.\n"), 'D/gamma' : Item(contents="This is the file 'gamma'.\n"), - 'mu' : Item(contents="This is the file 'mu'.\n"), + 'mu' : Item(contents="This is the file 'mu'.\n"), }) - + svntest.actions.run_and_verify_checkout(repo_url + '/A', wc2_dir, expected_output, expected_wc, None, None, None, None) @@ -1187,7 +1187,7 @@ def checkout_wc_from_drive(sbox): 'G/pi' : Item(contents="This is the file 'pi'.\n"), 'G/tau' : Item(contents="This is the file 'tau'.\n"), 'G/rho' : Item(contents="This is the file 'rho'.\n"), - 'gamma' : Item(contents="This is the file 'gamma'.\n"), + 'gamma' : Item(contents="This is the file 'gamma'.\n"), }) svntest.actions.run_and_verify_checkout(repo_url + '/A/D', wc3_dir, Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/commit_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/commit_tests.py?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/tests/cmdline/commit_tests.py (original) +++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/commit_tests.py Sat Feb 14 11:15:05 2015 @@ -2931,17 +2931,17 @@ def last_changed_of_copied_subdir(sbox): def commit_unversioned(sbox): "verify behavior on unversioned targets" - + sbox.build(read_only=True) wc_dir = sbox.wc_dir - + expected_err = 'E200009: .*existing.*\' is not under version control' # Unversioned, but existing file - svntest.main.file_write(sbox.ospath('existing'), "xxxx") + svntest.main.file_write(sbox.ospath('existing'), "xxxx") svntest.actions.run_and_verify_commit(wc_dir, None, None, expected_err, sbox.ospath('existing')) - + # Unversioned, not existing svntest.actions.run_and_verify_commit(wc_dir, None, None, expected_err, sbox.ospath('not-existing'))
