Checkout
rhuijben
committed
on 22 Feb 15
Make svn update --set-depth <something-limiting> properly avoid removing
local changes, instead of leaving just some items as unversioned, f… Show more
Make svn update --set-depth <something-limiting> properly avoid removing

local changes, instead of leaving just some items as unversioned, following

the same handling as we do with updates.

It already handled some changes of the root properly, but in most cases

it could be as destructive as as 'svn revert -R TARGET'

In the background this makes the crop/exclude operation the BASE operation

that it should have been using from the start.

* subversion/libsvn_wc/crop.c

 (crop_children): Only try to remove BASE nodes affected by the depth

   filter. Don't remove nodes that are changed/shadowed.

* subversion/libsvn_wc/wc-queries.sql

 (STMT_UPDATE_NODE_BASE_DEPTH): Only store depth when presence specifies

   there is an actual directory (to make the wc-db function fail if it

   isn't).

* subversion/tests/cmdline/depth_tests.py

 (fold_tree_with_unversioned_modified_items): Update expected results.

Show less