subversion

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

Changeset 1405738 is being indexed.

Remove obsolete "Mark XIV" stuff.
Remove layering violation introduced in r1400498. We simply add a

special value ("2") to the "cache revprops" config setting. When

set to this value, it will cause FSFS to enable revprop caching iff

we the required infrastructure is also available.

* subversion/include/svn_fs.h

(SVN_FS_CONFIG_FSFS_CACHE_REVPROPS): document extended value range

* subversion/libsvn_fs_fs/caching.c

(read_config): add handling for option value "2"

* subversion/svnadmin/main.c

(open_repos): use extended option value

Follow-up to r1405530:

* subversion/svn/mergeinfo-cmd.c

(mergeinfo_diagram): silence yet another conversion warning

Make all explicit casts, i.e. those not inside some APR macro, use the

C++ cast operators static_cast, const_cast and reinterpret_cast.

No functional change.

Due to the large number of places changed and the simplicity of the change,

I won't list the function touched but only the affected files.

* subversion/bindings/javahl/native/ClientContext.cpp

* subversion/bindings/javahl/native/CopySources.cpp

* subversion/bindings/javahl/native/CreateJ.cpp

* subversion/bindings/javahl/native/EnumMapper.cpp

* subversion/bindings/javahl/native/InputStream.cpp

* subversion/bindings/javahl/native/JNIUtil.cpp

* subversion/bindings/javahl/native/LogMessageCallback.cpp

*subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

* subversion/bindings/javahl/native/OutputStream.cpp

* subversion/bindings/javahl/native/Prompter.cpp

* subversion/bindings/javahl/native/RevisionRange.cpp

* subversion/bindings/javahl/native/RevpropTable.cpp

* subversion/bindings/javahl/native/StringArray.cpp

* subversion/bindings/javahl/native/SVNClient.cpp

* subversion/bindings/javahl/native/SVNRepos.cpp

* subversion/bindings/javahl/native/Targets.cpp

Final batch of size conversion fixes.

* subversion/libsvn_subr/spillbuf.c

(read_data): fix conversion warnings for all sign & size combinations

* subversion/libsvn_client/patch.c

(readline_prop): ditto

* subversion/libsvn_delta/text_delta.c

(apply_window): txdelta uses in-memory buffers

Use integer types more consistently in membuffer cache.

* subversion/libsvn_subr/cache-membuffer.c

(entry_group_t): same type for entry count as for entry indexes

(get_index): explicitly cast from size_t to entry index

(svn_cache__membuffer_cache_create): fix 32/64 bit conversion warnings

Fix size and signedness conversion warnings under Win64.

* subversion/libsvn_fs_fs/fs_fs.c

(parse_packed_revprops): fix signedness in overflow check

(get_contents): use apr_size_t for in-memory data structs

Silence size conversion warnings under Win64 where it is safe to to so

because we know the actual value ranges.

* subversion/libsvn_repos/load.c

(parse_text_block,

svn_repos_parse_dumpstream3): bufflen is limited by stream chunk size

* subversion/svn/mergeinfo-cmd.c

(mergeinfo_diagram): those text snippets are short

* subversion/tests/libsvn_subr/io-test.c

(create_test_file): size is <= 5

Remove space before function call open parenthesis.

* subversion/bindings/javahl/native/JNICriticalSection.cpp,

* subversion/bindings/javahl/native/JNIMutex.cpp,

* subversion/bindings/javahl/native/JNIThreadData.cpp,

* subversion/bindings/javahl/native/JNIUtil.cpp,

* subversion/bindings/javahl/native/Revision.cpp,

* subversion/bindings/javahl/native/SVNRepos.cpp,

* subversion/bindings/javahl/native/Targets.cpp:

Remove space before function call open parenthesis.

Fix size and signedness conversion warnings.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_is_root): use integer types consistently

Silence signedness mismatch in overflow checks.

* subversion/libsvn_client/deprecated.c

(info_from_info2): fix signedness mismatch in overflow check

* subversion/libsvn_delta/svndiff.c

(write_handler,

read_window_header): ditto

Fix size and sign conversion warnings in WIN API usage under Win64 by using

32 bit values where required. This is safe for us as path lengths and

registry key / values are well below the 2G threshold.

* subversion/libsvn_subr/config_win.c

(svn_config__win_config_path): string conversion uses int lengths

(parse_section,

svn_config__parse_registry): explicitly cast to DWORD

Fix 8 -> 4 byte size conversion warning under Win64.

* tools/server-side/fsfs-reorg.c

(compare_noderev_offsets,

compare_representation_offsets): manually convert the difference to a

comparison result

Fix "invalid storage class" compiler warning under Windows. APR_DECLARE

cannot be used here as it produces invalid code. Under Unix, this macro

is simply a no-op. So, we need to define our own platform-specific type

for the imported APR function.

* subversion/svndumpfilter/main.c

(open_fn_t): new platform-specific function type

(create_stdio_stream): use the above

Fix signed / unsigned comparison warnings by consistently using uint32.

The data to check is uint32.

* subversion/libsvn_subr/utf_width.c

(interval,

bisearch): use unsigned ints

Fix address formatting in our crash reporter under Win64. We must display

addresses using 16 hex digits and use DWORD_PTR (4 / 8 bytes) instead of

DWORD (always 4 bytes) when casting void* to addresses.

* subversion/libsvn_subr/win32_crashrpt.c

(FORMAT_PTR): new macro

(write_module_info_callback,

format_basic_type,

format_value): use macro for formatting; properly cast addresses

Silence integer size conversion warnings in JavaHL under Win64 by casting

the values explicitly. We assume that argument counts and property sizes

are all well below the 2G limit.

* subversion/bindings/javahl/native/CopySources.cpp

(CopySources::array): cast size_t -> int

* subversion/bindings/javahl/native/CreateJ.cpp

(CreateJ::Checksum,

CreateJ::PropertyMap): ditto

* subversion/bindings/javahl/native/StringArray.cpp

(StringArray::array): ditto

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::logMessages,

SVNClient::merge,

SVNClient::propertyGet,

SVNClient::revProperty): same here ...

* subversion/bindings/javahl/native/Targets.cpp

(Targets::array): ... and here

Added a helper to compress files in-memory.

Cosmetic.

* subversion/libsvn_client/commit.c

(append_externals_as_explicit_targets): Fix indent.

* subversion/tests/cmdline/externals_tests.py

(include_immediate_dir_externals): Mark with #4252, fix comment.

* subversion/tests/cmdline/export_tests.py

(export_working_copy_at_base_revision): Associate with open issue #3798.

Adjust XFAIL test to expect the planned behaviour when updating a move.

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

(wc_resolve): New.

(wc_move): Expect new behaviour.

Revert r1405026.

[reverted in r1405034]

* subversion/svn_private_config.hw

(SVN_BUILD_HOST): Define as "x64-microsoft-windows" on x64 platform.

Fix "incompatible pointer type" warnings when assigning SASL callbacks.

The problem is that the function signature is not fixed and the SASL

structure defines it as having no args at all.

* subversion/libsvn_ra_svn/cyrus_auth.c

(svn_ra_svn__do_cyrus_auth): cast function pointers to void* before

assigning them

* subversion/svnserve/cyrus_auth.c

(callbacks): ditto

* subversion/tests/libsvn_wc/db-test.c,

subversion/tests/libsvn_wc/entries-compat.c

(create_open): Don't auto-upgrade working copies in these tests to avoid

accidentally upgrading the parent WC.

* subversion/libsvn_wc/wc_db_wcroot.c

(svn_wc__db_wcroot_parse_local_abspath): If a working copy that requires an

upgrade is found when traversing upwards from a symlink, try to find a

supported working copy where the symlink points to instead.

Fixes the following tests when run within a 1.7 WC:

special_tests.py 19: operate on symlink to wc

special_tests.py 20: svnversion on symlink to wc

* subversion/libsvn_wc/lock.c

(svn_wc__internal_check_wc): Don't error out on WCs that now aren't

auto-upgraded anymore. Treat them the same as missing and unsupported

WCs to allow checkout of nested working copies within such WCs.

Fixes the bulk of the test suite failures I introduced in r1404856 if

the tests are run within a 1.7 format working copy.

* subversion/tests/cmdline/upgrade_tests.py

(basic_upgrade): For some reason we must expect SVN_ERR_WC_NOT_DIRECTORY

as well to make the windows buildbot happy. I suspect this has to do with

out-of-tree test suite runs, rather than with the OS platform.

Disable automatic working copy upgrades. This has been discussed over and

over, with many people in the community indicating they prefer manual upgrades.

For now, this is a hard-coded default. There is no way to enable auto-upgrade.

And unfortunately there is no single knob to globally switch auto-upgrade on

and off in the code. Rather, function parameters have to be tweaked in various

places where a working copy database is opened.

Some parts of the upgrade code were written and tested exclusively for

upgrading from 1.6 and earlier working copy formats to wc-ng, and thus

needed small fixes to allow 'svn upgrade' to run wc-ng -> wn-ng format

bumps without crashing.

* subversion/libsvn_wc/adm_files.c

(svn_wc_create_tmp_file2): Don't auto-upgrade working copies.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_get_pristine_copy_path): Don't auto-upgrade working copies.

* subversion/libsvn_wc/cleanup.c

(svn_wc_cleanup3): Don't auto-upgrade working copies.

* subversion/libsvn_wc/context.c

(svn_wc_context_create): Don't auto-upgrade working copies.

* subversion/libsvn_wc/lock.c

(pool_cleanup_locked, svn_wc_adm_open3, svn_wc_adm_probe_open3,

open_anchor): Don't auto-upgrade working copies.

* subversion/libsvn_wc/upgrade.c

(svn_wc__upgrade_sdb): Initialise *result_format before use if the

working copy is already at format SVN_WC__VERSION to prevent an assertion

during no-op upgrades of wc-ng working copies.

(is_old_wcroot): Remove Subversion version numbers from error messages.

It is now misleading to say that an upgrade is not possible because a

pre-1.7 working copy was found since 'svn upgrade' now runs on any format.

(svn_wc_upgrade): Handle upgrades from wc-ng-style working copies.

Enable auto-upgrade of the db during upgrades from pre-1.7 WCs to avoid

'svn upgrade' advising users to run 'svn upgrade'.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_bump_format): New helper function for wc-ng -> wc-ng upgrades.

Ensures that the upgrade target is a working copy root, and performs a

format bump of wcroot->sdb, which isn't exposed outside of the wc_db layer.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_bump_format): Declare.

* subversion/libsvn_wc/wc_db_wcroot.c

(svn_wc__db_pdh_create_wcroot): Properly handle the case where we do not

auto-upgrade and run into a working copy using an older format.

Previously, we ended up asserting in VERIFY_USABLE_WCROOT() somewhere

because no upgrade happened but no error was returned either. Instead,

return an error advising the user to upgrade the working copy.

* subversion/tests/cmdline/upgrade_tests.py

(wc_is_too_old_regex): The error message matched by this regex has changed

in some cases, so adjust the regex accordingly.

(basic_upgrade): Expect slightly different error messages resulting from

above changes. The error code returned is unchanged, however.

(upgrade_tree_conflict_data, upgrade_from_format_28): These tests were

running 'svn status' and 'svn info' to trigger auto-upgrades. Make them

run 'svn upgrade' instead to keep them passing.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_temp_get_format): Remove redundant test of 'err' variable.