I'm investigating some problems around file externals, and ran into
this revision.
In the future: could you *please* try to break up large commits? This
revision is really large, and very difficult to provide proper review.
For example, the lock.c stuff could have been separate. And maybe the
internal lock mgmt in update_editor before changing the call
signature.
In this vast commit, the fact that file externals return a bogus
schedule was lost. Your "fake_ctx" is really bad, tho I see that has
been fixed since then. Using these manual acquire/release locks rather
than the call_with_write_lock is not very robust. etc.
If you can, please commit in smaller, more-reviewable stages.
Thanks,
-g
On Fri, Mar 5, 2010 at 08:57, <philip_at_apache.org> wrote:
> Author: philip
> Date: Fri Mar 5 13:57:09 2010
> New Revision: 919416
>
> URL: http://svn.apache.org/viewvc?rev=919416&view=rev
> Log:
> Remove access batons from checkout/update/switch.
>
> * subversion/include/private/svn_wc_private.h
> (svn_wc__acquire_write_lock, svn_wc__release_write_lock): Tweak doc strings.
>
> * subversion/libsvn_wc/lock.c
> (svn_wc__acquire_write_lock): More complete anchor calculation.
> (svn_wc__release_write_lock): Don't remove lock if work queue item exists.
>
> * subversion/libsvn_wc/update_editor.c
> (struct edit_baton): Remove adm_access, add close_edit_complete.
> (cleanup_dir_baton): Remove locks if not close_edit_complete.
> (prep_directory): Acquire lock rather than access baton.
> (schedule_existing_item_for_re_add): Remove comment, locks are recursive.
> (close_directory): Kill cleanup handler.
> (merge_file): Adjust file external checks for possible entry cache bug.
> (close_edit): Set close_edit_complete.
> (make_editor): Remove access batons.
>
> * subversion/libsvn_wc/log.c
> (log_do_delete_entry): Remove call to extend access baton.
>
> * subversion/libsvn_client/deprecated.c
> (svn_client_switch): Don't pass NULL for access baton.
>
> * subversion/libsvn_client/client.h
> (svn_client__switch_internal, svn_client__handle_externals): Remove
> adm_access parameter.
>
> * subversion/libsvn_client/switch.c
> (switch_internal): New, copied from svn_client__switch_internal. Add
> local_abspath and anchor_abspath parameters, remove access baton code.
> (svn_client__switch_internal): Gutted. Remove adm_access parameter. Now
> just a wrapper to acquire and release locks.
> (svn_client_switch2): Don't pass NULL for access baton.
>
> * subversion/libsvn_client/update.c
> (update_internal): New, copied from svn_client__update_internal. Add
> local_abspath and anchor_abspath parameters, remove access baton code.
> (svn_client__update_internal): Gutted. Now just a wrapper to acquire
> and release locks.
>
> * subversion/libsvn_client/externals.c
> (struct handle_external_item_change_baton): Remove adm_access.
> (switch_dir_external): Don't pass NULL for access baton.
> (switch_file_external): Remove adm_access parameter. Remove access batons,
> acquire lock instead. Avoid SVN_ERR and goto cleanup instead.
> (handle_external_item_change): Don't pass access baton.
> (struct handle_externals_desc_change_baton): Remove adm_access.
> (handle_externals_desc_change): Remove access baton code.
> (svn_client__handle_externals): Remove adm_access parameter.
>
> * subversion/tests/cmdline/upgrade_tests.py
> (test_list): Remove XFail from update_1_5.
>...
Received on 2010-04-08 07:06:35 CEST