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

Changeset 873715 is being indexed.

Another path->url conversion fix, similar to r33121 and friends:

* subversion/libsvn_client/merge.c

(calculate_left_hand_side): Use svn_path_url_add_component, instead

of svn_path_join, to extend a url by a path component

Found by: Purple Streak <mrpurplestreak{_AT_}>

(Scripted up a good reproduction recipe when requested.)

Fix warning about not being able to find svn_private_config.h when

running Follow-up to r33610.

* build/generator/ Add path to SWIG_INCLUDES so SWIG can better

find svn_private_config.h.

* subversion/bindings/swig/core.i: Changed path to svn_private_config.h since

it can now be found via SWIG_INCLUDES.

* subversion/libsvn_subr/sqlite.c

(init_sqlite): A"void" a warning from some compilers about how the

function declaration isn't a prototype.

* subversion/svn/tree-conflicts.c

(svn_cl__append_human_readable_tree_conflict_description): Print the

victim path in 'Invalid tree conflict data' error message.

* subversion/svn/tree-conflicts.c

(new_tree_conflict_phrases): Consistently align multi-line

strings. Whitespace-only change.

* subversion/svn/tree-conflicts

(tree_conflict_phrases): Rename members 'does_not_exist_update'

and 'does_not_exist_merge' to 'missing_update' and 'missing_merge',

respectively. This way, the phrases are named more similarly

to their corresponding reason svn_wc_conflict_reason_missing.

(new_tree_conflict_phrases, select_our_phrase): Track renames.

Fix issue #3297, "tree conflict data in entries not always printable".

When printing human-readable descriptions of tree conflicts, do not

make any assumptions about valid conflict scenarios. Rather, make

sure to return a usable string in every possible scenario.

* subversion/svn/tree-conflicts.c

(tree_conflict_phrases): Add new members 'update_added', 'we_added',

and 'unversioned'.

(new_tree_conflict_phrases): Initialise new tree_conflict_phrases members.

(select_their_phrase): Handle previously unhandled action 'added' with


(select_our_phrase): Handle previously unhandled reasons 'obstructed' with

update, 'added' with update, and 'unversioned' with both update and merge.

Also fix a bug -- we were returning the wrong string for the 'added'

reason with merge.

(svn_cl__append_tree_conflict_info_xml): Handle previously unhandled

action 'added' and reason 'unversioned' with both update and merge.

Cleanup for r33620.

* subversion/svn/info-cmd.c

(print_info_xml): Remove a comment that no longer applies. Mark an output

string for translation.

(print_info): Mark an output string for translation.

Suggested by: arfrever

Approved by: julianfoad

* subversion/svn/tree-conflicts.c

(select_their_phrase, select_our_phrase): Remove 'default' cases when

switching over values of types svn_wc_conflict_action_t and

svn_wc_conflict_reason_t. Also, instead of returning NULL in

several cases, just make those cases break to a single 'return NULL'

at the end. No functional change.

This commit introduces a warning, which illuminates issue #3297,

"tree conflict data in entries not always printable":

subversion/svn/tree-conflicts.c: In function `select_their_phrase':

subversion/svn/tree-conflicts.c:112: warning: enumeration value \

`svn_wc_conflict_action_add' not handled in switch

subversion/svn/tree-conflicts.c: In function `select_our_phrase':

subversion/svn/tree-conflicts.c:187: warning: enumeration value \

`svn_wc_conflict_reason_unversioned' not handled in switch

I will fix these warnings (and hence issue #3297) in a follow-up commit.

* subversion/libsvn_client/update.c

(svn_client__update_internal): Following up on r33631, really call

svn_io_sleep_for_timestamps instead of svn_sleep_for_timestamps

with too many arguments.

Following up on r33616, call svn_io_sleep_for_timestamps instead of

svn_sleep_for_timestamps where there is a single logical path available

to check the timestamp resolution on.

* subversion/libsvn_client/checkout.c

(svn_client__checkout_internal): Sleep for the next timestamp on the

checkout root.

* subversion/libsvn_client/cleanup.c

(svn_client_cleanup): Sleep for the next timestamp on the cleanup root.

* subversion/libsvn_client/commit.c

(svn_clint_commit4): Sleep for the next timestamp on the base directory

of the commit.

* subversion/libsvn_client/merge.c

(svn_client_merge3, svn_client_merge_reintegrate, svn_client_merge_peg3):

Sleep for the next timestamp on the target working copy path.

* subversion/libsvn_client/switch.c

(svn_client__switch_internal): Sleep for the next timestamp on the switched

working copy path.

* subversion/libsvn_client/update.c

(svn_client__update_internal, svn_client_update3): Sleep for the next

timestamp on the updated working copy path.

Set 'svn:mime-type' of PNG images to 'image/png'.

* subversion/tests/cmdline/log_tests_data/merge_history_repo.png

* packages/windows-WiX/BuildSubversion/Bitmaps/svn_bck.png

* build.conf

(__ALL_TESTS__): Add window-test as required library to fix windows

tests on the buildbots.

Remove the svnserve-logging branch, merged to trunk in r30825.

* subversion/svn/tree-conflicts.c:

(select_their_phrase, select_our_phrase,

svn_cl__append_tree_conflict_info_xml): When switching over

values of types svn_wc_conflict_action_t and svn_wc_conflict_reason_t,

make the order of cases follow the order of struct member declarations.

No functional change.

Update documentation for the test merge history repos creation, which is

used for the '-g' tests. The public URL for this image disappeared.

* subversion/tests/cmdline/log_tests_data/merge_history_repo.png:


* subversion/tests/cmdline/

(merge_history_repos): Update comment.

* www/commercial-support.html: Add elego.

* subversion/bindings/swig/include/svn_global.swg: Define SVN_DEPRECATED in the

global interface to fix SWIG parser errors.

* www/faq.html (#broken-subclipse): Link to #working-copy-format-change.
More trying to direct usage questions to users@.

* www/faq.html

(more-information): Link to mailing-lists.html for the users list.

On the issue-3067-deleted-subtrees branch: Merge r33583-33616 from trunk.

  1. … 31 more files in changeset.
Make "svn info" report a tree conflict on the victim, rather than on the

parent directory. Enable "svn info" to report on an unversioned item that

is the victim of a tree conflict, to support the cases where "merge" tries

to modify an item that is not present in the target.

Patch by: me


* subversion/libsvn_wc/tree_conflicts.c

(svn_wc_get_tree_conflict): Support getting the conflict info from the

parent dir of the victim.

* subversion/include/svn_wc.h

(svn_wc_get_tree_conflict): Add a boolean arg for new parent-dir option.

* subversion/libsvn_wc/status.c

(assemble_status): Track changed svn_wc_get_tree_conflict declaration.

* subversion/include/svn_client.h

(svn_info_t): Replace the 'tree_conflicts' array with a single

'tree_conflict' pointer.

* subversion/libsvn_client/info.c

(build_info_from_dirent): Initialize 'tree_conflict' instead of


(found_entry_baton): Add an 'adm_access' field.

(build_info_from_entry): Don't fill in the tree conflict info here, because

we don't have the required adm_access baton...

(info_found_entry_callback): ... but fill it in here instead,

(crawl_entries): Store the adm_access of the root directory of the crawl.

(info_error_handler): New function.

(entry_walk_callbacks): Use the new handler function.

(build_info_for_unversioned): New helper function.

* subversion/svn/info-cmd.c

(print_info_xml, print_info): Print just the one tree conflict that is now

in the info structure, rather than an array of conflicts. In

print_info_xml, remove restriction that revnum must be valid.

* subversion/svn/schema/info.rnc

Remove the 'tree-conflicts' wrapper element, as there can now be only one

tree conflict reported per node.

* subversion/tests/cmdline/

(info_with_tree_conflicts): Adjust accordingly.

* subversion/tests/cmdline/

(tree_conflicts_and_obstructions): Adjust accordingly.

Python 3 compatibility:

Update calls to print() in 'subversion/bindings' and 'subversion/libsvn_subr'


* subversion/bindings/ctypes-python/csvn/ext/

* subversion/bindings/ctypes-python/examples/

* subversion/bindings/ctypes-python/examples/

* subversion/bindings/ctypes-python/examples/

* subversion/libsvn_subr/ Call print().

* build/

(main): Fix call to print() for compatibility with Python 2.

* subversion/po/pl.po: Fix some translations.

Patch by: Derbeth <>

Fix memory corruption bug. When copying strings, do not copy over the

terminating null char of the string.

* subversion/libsvn_subr/dirent_uri.c:

(canonicalize): check for null char in while loop

Add new svn_io_sleep_for_timestamps() that sleeps until the timestamp for a

filesystem has changed. This is implemented by using the original sleep time

to determine if the filesystem has subsecond precision and if it has delay

for a shorter time.

Callers of svn_sleep_for_timestamps will have to be changed to take advantage

of this speedup.

* subversion/include/svn_io.h

* subversion/libsvn_subr/io.c

(svn_io_sleep_for_timestamps): New function that sleeps until the filesystem

containing path gives a newer timestamp than the current one. If we can't

determine the timestamp resolution or encounter an error wait until the

next second.

(SVN_SLEEP_ENV_VAR): Moved here from time.c

* subversion/include/svn_time.h

* subversion/libsvn_subr/time.c

(svn_sleep_for_timestamps): Deprecate function. Reimplement by calling

svn_io_sleep_for_timestamps with path and pool NULL.

(SVN_SLEEP_ENV_VAR): Moved define to io.c

Fix documentation of svn_path_is_canonical.

Suggested by: gstein

* subversion/include/svn_path.h

(svn_path_is_canonical): Document pool usage. Even though the pool won't be

used anymore in 1.6, it'll still be needed when using <1.5 libs.

On the 1.5.x-issue2489 branch:

Merge from 1.5.x branch to 1.5.x-issue2489 branch to bring it up-to-date

with 1.5.3 release.

svn merge -r32768:33570

    • ?
  1. … 15 more files in changeset.
Fix (possible) memory corruption bug. The txstream's resulting checksum

was allocated in an iteration pool rather than the requested result pool.

* subversion/libsvn_delta/text_delta.c:

(txdelta_next_window): allocate the checksum from b->result_pool

Add a new test, based on an email from Joe Swatosh <>

In the Ruby bindings, a digest was coming out wrong, so we now have a test

to ensure that a txdelta stream is producing the target digest properly.

TODO: test some invariants of the windows that are generated.

* build.conf:

(window-test): new test target

* subversion/tests/libsvn_delta:

(svn:ignore): ignore the new window-test executable

* subversion/tests/libsvn_delta/window-test.c: new file

    • ?