Eric Miller <Eric.Miller@amd.com>


Found Patch
r868463, r868452 r863092

r863092 | dlr | 2007-01-15 18:47:37 +0000 (Mon, 15 Jan 2007)

Allow a work-around for file permission changes (via a call to
reown_file()) when we don't have permissions to change permissions.
This fixes a regression introduced in r17501 for builds where EPERM is
undefined, leading to APR_STATUS_IS_EPERM getting defined as 0
(false).

Incidentally, neither APR does not define APR_STATUS_IS_EPERM() in
apr_errno.h.  We'll want to either get APR_STATUS_IS_EPERM() into APR
and move our definition of it into private/svn_compat.h, move to usage
of vanilla EPERM, or change our macro's name to stop polluting APR's
namespace.  (We'll keep this commit brief to facilitate ease of
backport, as suggested by Max Bowsher.)

* subversion/libsvn_subr/io.c
  Include errno.h.

Patch by: Eric Miller <Eric.Miller@amd.com>
(Tweaked by me.)


r868452 | dlr | 2007-12-10 21:42:01 +0000 (Mon, 10 Dec 2007)

Add test for issue #3039, "'update -N' on a path to be deleted
corrupts working copy".

* subversion/tests/cmdline/depth_tests.py
  (depthy_update_above_dir_to_be_deleted): Add new test case.
  (test_list): Add new test case to list, currently XFAIL.

Found by: Eric Miller


r868463 | dlr | 2007-12-11 04:13:52 +0000 (Tue, 11 Dec 2007)

Fix issue #3039, "'update -N' on a path to be deleted corrupts working
copy".

* subversion/libsvn_wc/log.c
  (log_do_delete_entry): When deleting an (existing) directory, call
    svn_wc__adm_extend_lock_to_tree() to assure that the entire WC
    tree for full_path is locked.

* subversion/libsvn_wc/lock.h
  (svn_wc__adm_extend_lock_to_tree): New function that ensures
    ADM_ACCESS has a lock and for an entire WC tree (all the way to
    its leaf nodes).

* subversion/libsvn_wc/lock.c
  Include svn_types.h
  (extend_lock_found_entry): New callback function that extends the
    scope of the svn_adm_access_t * passed in as WALK_BATON for its
    entire WC tree.  An implementation of svn_wc_entry_callbacks2_t's
    found_entry() API.
  (extend_lock_walker): WC entry walker callbacks for
    svn_wc__adm_extend_lock_to_tree().
  (svn_wc__adm_extend_lock_to_tree): Implement new function declared in lock.h.

* subversion/tests/cmdline/depth_tests.py
  (test_list): Remove XFAIL marker from depthy_update_above_dir_to_be_deleted().

Found by: Eric Miller
Reviewed by: glasser