Checkout
philip
committed
on 26 Feb 13
Ensure both move source and destination are locked when resolving
conflicts.

* subversion/include/private/svn_wc_private.h
* subversion/lib… Show more
Ensure both move source and destination are locked when resolving

conflicts.

* subversion/include/private/svn_wc_private.h

* subversion/libsvn_wc/lock.c

 (svn_wc__acquire_write_lock_for_resolve): New.

* subversion/libsvn_client/resolved.c

 (svn_client_resolve): Use new lock acquire function.

* subversion/libsvn_wc/wc-queries.sql

 (STMT_SELECT_MOVED_OUTSIDE): Select moved_to.

* subversion/libsvn_wc/wc_db.h

 (svn_wc__required_lock_for_resolve): New.

* subversion/libsvn_wc/wc_db_update_move.c

 (update_moved_away_conflict_victim): Verify that lock is held on

  destination.

 (svn_wc__db_update_moved_away_conflict_victim): Verify that lock is held

  on source.

 (required_lock_for_conflict, required_lock_for_resolve,

  svn_wc__required_lock_for_resolve): New.

* subversion/tests/libsvn_wc/utils.c

 (sbox_wc_resolve): Acquire and release locks.

Show less