Checkout
rhuijben
committed
on 13 Jul 12
Make svn_wc__delete_many properly handle deletions of multiple targets with
conflict markers by storing them in a guaranteed stable way.

In… Show more
Make svn_wc__delete_many properly handle deletions of multiple targets with

conflict markers by storing them in a guaranteed stable way.

Instead of fixing the original logic to store markers from multiple targets

just create work items to make svn_wc__delete and svn_wc__delete_many

handle all deletes in an atomic way.

* subversion/libsvn_wc/adm_ops.c

 (create_delete_wq_items): New function, extracted from ...

 (svn_wc__delete_many,

  svn_wc__delete_internal): ... these functions which now just install wq

    items instead of using in-memory state.

* subversion/libsvn_wc/wc_db.c

 (op_delete_many_baton_t): Add work_items and delete_dir_externals flags.

 (op_delete_many_txn): Install work items and note a todo.

 (svn_wc__db_op_delete_many): Update caller.

* subversion/libsvn_wc/wc_db.h

 (svn_wc__db_op_delete_many): Add arguments.

Show less