I completely disagree with this.
Didn't I just get done describing the intent here? We allow the
upgrade to continue. If there is an impact on work queue items, then
they must be upgraded, too.
Clients are not expected to back up to previous revisions and run "svn
cleanup". We ONLY plan to require that for the 1.6 -> 1.7 transition.
From then on, we can/should/will perform an upgrade with a non-empty
work queue. Every single auto-upgrade in the past has operated in this
fashion, and we will continue to do so from 1.7 onwards.
Please revert. This is contrary to the design that I explained just yesterday.
-g
On Wed, Jun 30, 2010 at 06:21, <philip_at_apache.org> wrote:
> Author: philip
> Date: Wed Jun 30 10:21:31 2010
> New Revision: 959257
>
> URL: http://svn.apache.org/viewvc?rev=959257&view=rev
> Log:
> * subversion/libsvn_wc/wc_db_pdh.c
> (svn_wc__db_pdh_create_wcroot): Don't auto-upgrade if there are
> outstanding workqueue items.
>
> Modified:
> subversion/trunk/subversion/libsvn_wc/wc_db_pdh.c
>
> Modified: subversion/trunk/subversion/libsvn_wc/wc_db_pdh.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db_pdh.c?rev=959257&r1=959256&r2=959257&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_wc/wc_db_pdh.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/wc_db_pdh.c Wed Jun 30 10:21:31 2010
> @@ -299,16 +299,30 @@ svn_wc__db_pdh_create_wcroot(svn_wc__db_
> format);
> }
>
> + /* Verify that no work items exists. If they do, then our integrity is
> + suspect and, thus, we cannot use this database. */
> + if (format >= SVN_WC__HAS_WORK_QUEUE
> + && (enforce_empty_wq || (format < SVN_WC__VERSION && auto_upgrade)))
> + {
> + svn_error_t *err = verify_no_work(sdb);
> + if (err)
> + {
> + /* Special message for attempts to upgrade a 1.7-dev wc with
> + outstanding workqueue items. */
> + if (err->apr_err == SVN_ERR_WC_CLEANUP_REQUIRED
> + && format < SVN_WC__VERSION && auto_upgrade)
> + err = svn_error_quick_wrap(err, _("Cleanup with an older 1.7 "
> + "client before upgrading with "
> + "this client"));
> + return svn_error_return(err);
> + }
> + }
> +
> /* Auto-upgrade the SDB if possible. */
> if (format < SVN_WC__VERSION && auto_upgrade)
> SVN_ERR(svn_wc__upgrade_sdb(&format, wcroot_abspath, sdb, format,
> scratch_pool));
>
> - /* Verify that no work items exists. If they do, then our integrity is
> - suspect and, thus, we cannot use this database. */
> - if (format >= SVN_WC__HAS_WORK_QUEUE && enforce_empty_wq)
> - SVN_ERR(verify_no_work(sdb));
> -
> *wcroot = apr_palloc(result_pool, sizeof(**wcroot));
>
> (*wcroot)->abspath = wcroot_abspath;
>
>
>
Received on 2010-06-30 19:13:13 CEST