subversion

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

Changeset 878428 is being indexed.

* subversion/include/svn_wc.h

(svn_wc_get_prop_diffs2): Update a docstring to better reflect what is

actually happening.

Recommend Neon 0.28.5.

* configure.ac

(NEON_RECOMMENDED_VER): Recommend Neon 0.28.5.

* tools/dist/construct-rolling-environment.sh

(NEON): Use Neon 0.28.5.

Another follow-up to r38325, the fix for issue #3432.

* subversion/libsvn_client/merge.c

(find_gaps_in_merge_source_history): Remove YAUV (Yet Another Unnecessary

Variable).

* subversion/libsvn_ra_serf/locks.c

(handle_lock): More minor error handling cleanup, eliminating

unnecessary logic.

Suggested by: gstein

* subversion/libsvn_ra_serf/locks.c

(handle_lock): Minor error handling cleanup, avoiding a warning

about shadowed variable declaration and promoting code readability.

Follow-up to r38325, fix for issue #3432.

* subversion/libsvn_client/merge.c

(find_gaps_in_merge_source_history): Avoid shadowing a previous local

variable by removing some unnecessary variables.

Paranoia: Add a few assertions about absolute paths.

* subversion/libsvn_wc/props.c

(svn_wc__props_delete, svn_wc__wcprop_set, svn_wc__prop_list2,

svn_wc_prop_get2, svn_wc_get_prop_diffs2):

Ensure the passed absolute paths really are.

* subversion/libsvn_wc/props.c

(svn_wc__internal_propset): Put a baton on the stack instead of the heap.

Prevent a theoretical segfault.

* subversion/libsvn_client/mergeinfo.c

(elide_mergeinfo): End a call to svn_dirent_join_many() with NULL.

Rework the creation and destruction of svn_wc_context_t within the client

library. Specifically, always create a wc_context as part of a client

context, and use that internally within the client library.

Suggested by: gstein

* subversion/include/svn_client.h

(svn_client_ctx_t.wc_ctx): Update docs.

* subversion/libsvn_client/relocate.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/prop_commands.c,

subversion/libsvn_client/ra.c,

subversion/libsvn_client/locking_commands.c,

subversion/libsvn_client/cat.c,

subversion/libsvn_client/copy.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/blame.c,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/cleanup.c,

subversion/libsvn_client/add.c,

subversion/libsvn_client/commit.c,

subversion/libsvn_client/client.h,

subversion/libsvn_client/mergeinfo.h:

Don't create a wc_context, just use the one in the client context. Also,

adjust function parameter lists and batons to eliminate redundant

wc_context members.

* subversion/libsvn_client/ctx.c

(svn_client_create_context): Create a wc context.

  1. … 3 more files in changeset.
Sprinkle some const-correctness on the unidiff application code.

Suggested by: gstein

* subversion/libsvn_client/patch.c

(patch_target_t): Mark two fields const.

(apply_textdiffs, init_patch_target, determine_hunk_line,

merge_hunk, apply_one_hunk, maybe_send_patch_target_notification,

apply_one_patch): Mark some parameters const.

Improve a doc string.

* subversion/include/svn_client.h

(svn_client_list_func_t): Rewrite the doc string to be more explicit and

detailed.

Refactor the unidiff application code for readability and cleaner logic.

No functional change intended.

* subversion/libsvn_client/patch.c

(patch_target_t): Move some field declarations around, and add

new fields KIND and SKIPPED. Also tweak a comment.

(report_skipped_target): Remove this function. All notifications are

now handled at one single place.

(resolve_target_path): Remove output parameters RESOLVED and EXISTS,

and all calls to report_skipped_target(). Make use of the new KIND

and SKIPPED fields in patch_target_t instead. Also tweak and remove

some comments.

(check_local_mods): New helper function.

(init_patch_target): Track changes to resolve_target_path(), and use

the new check_local_mods() helper.

(copy_lines_to_target): Drive-by whitespace fix.

(maybe_send_patch_target_notification): New helper function that handles

notifications.

(apply_one_patch): Clean up the logic by using the new KIND and SKIPPED

fields in patch_target_t and delegate notification business to the

new helper function maybe_send_patch_target_notification().

* COMMITTERS: Move myself to dormant section.

cmdline-test-factory: Remove code bloat, comment.

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

(TestFactory.switch): Use shlex.split() instead of own parsing.

(TestFactory.tokenize): Remove.

(TestFactory.path2svntest): Remove obsolete arg. Comment.

(split_remove_empty): Fix default arg, use filter() instead of loop.

Update callers of svn_wc_prop_set3() internal to libsvn_wc by creating

a library-private function which does the real work, and calling that

everywhere.

* subversion/libsvn_wc/props.c

(svn_wc__internal_propset): New.

(svn_wc_prop_set4): Call the internal function, obtaining a wc_db from

the wc_context.

* subversion/libsvn_wc/props.h

(svn_wc__internal_propset): New.

* subversion/libsvn_wc/copy.c

(copy_props): Add a db parameter, and get rid of an access baton param,

update API to use the internal propset function.

(copy_added_file_administratively, copy_added_dir_administratively):

Update call to copy_props().

* subversion/bindings/ctypes-python/csvn/core/__init__.py:

Remove unnecessary shebang line.

Found by: stsp

Attempt to fix the windows tests by ensuring we destroy the wc_context

prior to exiting svn_client_commit4().

* subversion/libsvn_client/commit.c

(svn_client_commit4): Destroy the wc_context. Also, create the wc_context

a bit later (after all the early outs).

Fix test_lock in the Python bindings testsuite.

* subversion/bindings/swig/python/tests/wc.py:

(SubversionWorkingCopyTestCase.test_lock): Assign the lock a token, and

lock /trunk/README.txt instead of /.

Patch by: Roman <DXDragon@yandex.ru>

Declare independence from the remaining uses of deprecated props functions in

libsvn_client.

* subversion/libsvn_client/client.h

(svn_client__harvest_committables, svn_client__get_copy_committables):

Add wc_ctx parameter; update docs.

* subversion/libsvn_client/copy.c

(wc_to_repos_copy): Provide a wc_ctx to svn_client__get_copy_committables().

* subversion/libsvn_client/commit_util.c

(check_prop_mods): Update to non-deprecated API, and take a wc_ctx param to

do so.

(harvest_committables): Don't create a wc_ctx, use a provided one.

(svn_client__harvest_committables): Take a wc_ctx, and pass it along.

(copy_committables_baton): Add wc_ctx member.

(harvest_copy_committables): Pass the wc_ctx down the stack.

(svn_client__get_copy_committables): Get a wc_ctx to initialize the baton.

* subversion/libsvn_client/commit.c

(svn_client_commit4): Initialize a wc_context to use later.

On the 'python-3-compatibility' branch:

Merge r38154:38333 from trunk.

  1. … 140 more files in changeset.
Almost finish cleaning up the wc-ng prop API fallout in libsvn_client.

* subversion/libsvn_client/ra.c

(set_wc_prop): Get rid of an entry and an access baton, and just call the

updated API with the wc_ctx.

(invalidate_wcprop_walk_baton): Replace the adm_access member with a wc_ctx.

(invalidate_wcprop_for_entry): Update API call.

(invalidate_wc_props): Initialize the wc_ctx.

* subversion/tests/cmdline/davautocheck.sh: Move loading of mod_unixd to

correct section.

More prop wc-ng API cleanup. (Almost done with the client-layered stuff.)

* subversion/libsvn_client/merge.c

(files_same_p): Add a wc_ctx param, and use it with the updated APIs.

(merge_file_deleted): Update calls to functions with wc_ctx param.

(get_mergeinfo_walk_baton): Add wc_ctx member.

(get_subtree_mergeinfo_walk_cb, get_mergeinfo_walk_cb,

record_mergeinfo_for_added_subtrees): Get a local path, and update API calls.

(svn_client_merge_reintegrate, get_mergeinfo_paths): Initialize new baton

member.

(get_subtree_mergeinfo_walk_baton): New member.

Update a few wc-ng deprecated function calls in libsvn_client.

* subversion/libsvn_client/cat.c

(cat_local_file): Add a wc_ctx parameter, and use it to call the updated

APIs.

(svn_client_cat2): Create (or reuse) a wc_context, and update the call to

cat_local_file().

A few more wc_context and API updates to mergeinfo.c.

* subversion/libsvn_client/mergeinfo.c

(elide_mergeinfo): Use a wc_ctx and absolute path. Update calls to the old

wc API.

(svn_client__elide_children, svn_client__elide_mergeinfo): Update calls to

elide_mergeinfo() with absolute paths and wc_ctx.

Let callers to svn_client__get_prop_from_wc() supply a working copy context,

in place of creating one each time this function is called.

The result of this change is many new wc_ctx function parameters, primarily

within mergeinfo.c and merge.c. The paradigm we are shooting for is that

client APIs create a wc_ctx (or reuse ctx->wc_ctx), and then pass it around

where ever needed. Although this is similar to passing adm_access batons

everywhere, the key insight is that the wc_ctx doesn't change depending on

which working copy directory or path we are accessing, which ultimately

means less trouble for the callers.

Also, as much as I would love to, we can't yet remove all the adm_access

batons, since there are still many APIs which require them. :(

* subversion/libsvn_client/client.h

(svn_client__get_prop_from_wc): Add wc_ctx param.

* subversion/libsvn_client/merge.c

(merge_cmd_baton_t): Add wc_ctx member.

(get_full_mergeinfo, inherit_implicit_mergeinfo_from_parent,

ensure_implicit_mergeinfo, filter_merged_revisions,

calculate_remaining_ranges, populate_remaining_ranges,

calculate_merge_inheritance, do_merge,

merge_cousins_and_supplement_mergeinfo):

Add wc_ctx param and propogate it to other function calls.

(record_skips, get_mergeinfo_paths, do_file_merge,

process_children_with_new_mergeinfo, record_mergeinfo_for_dir_merge,

record_mergeinfo_for_added_subtrees):

Use the wc_ctx from the merge_baton to call other functions.

(svn_client_merge3, svn_client_merge_reintegrate, svn_client_merge_peg3):

Create (or reuse) a wc_ctx for further use.

* subversion/libsvn_client/prop_commands.c

(svn_client__get_prop_from_wc): Add wc_ctx param, and use it instead of

creating one.

(svn_client_propget3): Get a wc_ctx for later use.

* subversion/libsvn_client/copy.c

(calculate_target_mergeinfo, extend_wc_mergeinfo, repos_to_repos_copy,

wc_to_repos_copy, repos_to_wc_copy_single, try_copy):

Add wc_ctx param and propogate it to other function calls.

(svn_client_copy5): Allocate the context from the correct pool.

* subversion/libsvn_client/mergeinfo.c

(svn_client__parse_mergeinfo, svn_client__get_wc_mergeinfo,

svn_client__get_wc_or_repos_mergeinfo, svn_client__elide_children,

svn_client__elide_mergeinfo, svn_client__elide_mergeinfo_for_tree,

get_mergeinfo):

Add wc_ctx param and propogate it to other function calls.

(svn_client__record_wc_mergeinfo):

Add wc_ctx param, remove access baton, and make sure the path we

receive is an absolute path. Update deprecated function call while

we're here.

(svn_client_mergeinfo_log_merged, svn_client_mergeinfo_get_merged,

svn_client_mergeinfo_log_eligible, svn_client_suggest_merge_sources):

Get a wc_ctx to use.

* subversion/libsvn_client/mergeinfo.h

(svn_client__get_wc_mergeinfo, svn_client__get_wc_or_repos_mergeinfo,

svn_client__elide_mergeinfo, svn_client__elide_children,

svn_client_elide_mergeinfo_for_tree):

Add wc_ctx param.

(svn_client__record_wc_mergeinfo): Remove adm_access baton param, and add

a wc_ctx param. Update docs.

Migrate very important information to a place where it's much easier

to find.

* subversion/tests/cmdline/README:

Explain how to run tests in a RAM disk. Copied verbatim from the FAQ.

* www/faq.html

(ramdisk-tests): Instead of having the answer to the "ram disk" question

here, link to cmdline/README.

Remove warning of 'redundant redeclaration of function'.

* subversion/include/svn_path.h

(): Include 'svn_dirent_uri.h', to make use of ifndef SVN_DIRENT_URI_H.

Fix issue #3432 'Merge can record mergeinfo from natural history gaps',

reimplementing r874467 along the way.

* subversion/libsvn_client/merge.c

(merge_cmd_baton_t): New member implicit_src_gap.

(calculate_remaining_ranges): Add new argument corresponding to the new

merge_cmd_baton_t member. Tweak doc string a bit. Ignore explicit

mergeinfo that falls within a natural history gap, that is a different

line of history.

(find_gaps_in_merge_source_history): New, finds gap in natural history, if

any.

(populate_remaining_ranges): Use new find_gaps_in_merge_source_history

function to find any gap in the merge source's natural history and stash

this information in the new merge_cmd_baton_t member. Rip out the old

r874467 fix for dealing with gaps in natural history.

(do_file_merge): Update call to calculate_remaining_ranges().

(record_mergeinfo_for_dir_merge): Remove natural history gaps from the

mergeinfo recorded to describe this merge.

(do_merge): Initialize new merge_cmd_baton_t member.

* subversion/tests/cmdline/merge_tests.py

(handle_gaps_in_implicit_mergeinfo): Remove comment re XFail status.

(test_list): Remove XFail from handle_gaps_in_implicit_mergeinfo.