Checkout
stsp
committed
on 22 Jun 16
Make 'svn update' treat incoming add vs. local add as a tree conflict again.

Back in r862331 the update editor was taught to automatically … Show more
Make 'svn update' treat incoming add vs. local add as a tree conflict again.

Back in r862331 the update editor was taught to automatically merge local

additions with incoming additions. This was the default behaviour until now.

I expect the conflict resolver to offer better support for this eventually.

To prepare for that, disable this automatic merge during updates by default.

This is easy to do since svn_client_update() provides a flag for it.

Add a new command line option to enable the old behaviour, mainly to keep

testing the old behaviour in our test suite. The old behaviour must not be

broken, according to our API compatibility guarantees.

'svn switch' was changed similarly in r862331, but has already been changed

to flag a tree conflict by default long ago.

* subversion/svn/cl.h

 (adds_as_modification): Add new option flag.

 (svn_cl__longopt_t): Add opt_adds_as_modification.

 (svn_cl__options): Define '--adds-as-modification'.

 (svn_cl__cmd_table): Add '--adds-as-modification' to 'svn update'.

 (sub_main): Handle '--adds-as-modification' option.

* subversion/svn/update-cmd.c

 (svn_cl__update): Pass new 'adds_as_modification' flag to svn_client_update().

* subversion/tests/cmdline/update_tests.py

 (update_with_obstructing_additions, update_conflict_details): Pass

  '--adds-as-modification' to 'svn update' to keep testing the old behaviour.

* subversion/tests/cmdline/upgrade_tests.py

 (upgrade_not_present_replaced): Adjust expected output and status for an

  update which now raises an 'add vs add' tree conflict.

Show less