Disable automatic working copy upgrades. This has been discussed over and over, with many people in the community indicating they prefer man…
Disable automatic working copy upgrades. This has been discussed over andover, 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 onand off in the code. Rather, function parameters have to be tweaked in variousplaces where a working copy database is opened.Some parts of the upgrade code were written and tested exclusively forupgrading from 1.6 and earlier working copy formats to wc-ng, and thusneeded small fixes to allow 'svn upgrade' to run wc-ng -> wn-ng formatbumps 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.