Danil Shopyrin <danil@visualsvn.com>

r876875, r872864

r872864 | danielsh | 2008-08-28 14:37:28 +0000 (Thu, 28 Aug 2008)

Fix issue #2505: make switch continue after deleting locally modified
directories, as update and merge do.

Patch by: Danil Shopyrin <danil.shopyrin@gmail.com>
(Log message tweaked by me.)

* subversion/libsvn_wc/update_editor.c
  (leftmod_error_chain): Trap and ignore SVN_ERR_WC_LEFT_LOCAL_MOD, fixing
    a potential error leak.  Don't delete logfile in that case.
  (do_entry_deletion): Call svn_wc_remove_from_revision_control()
    with instant_error = FALSE.

* subversion/tests/cmdline/switch_tests.py
  (tolerate_local_mods): New test.
  (test_list): Run the new test.

r876875 | pburba | 2009-03-26 20:43:44 +0000 (Thu, 26 Mar 2009)

On the subtree-mergeinfo branch: Don't record mergeinfo on any *subtree* not
touched by the merge.  The merge target still always gets mergeinfo set
describing the merge.

Patch by: Danil Shopyrin <danil@visualsvn.com>
Tweaked by: Me

Causes the following test failures due to mergeinfo no longer being set on
some subtrees:

FAIL:  merge_authz_tests.py 1: skipped paths get overriding mergeinfo
FAIL:  merge_tests.py 1: performing a merge, with mixed results
FAIL:  merge_tests.py 43: use subtree's mergeinfo to avoid repeated merge
FAIL:  merge_tests.py 44: drive reporter api in depth first order
FAIL:  merge_tests.py 45: target inherits mergeinfo from nearest ancestor
FAIL:  merge_tests.py 46: mergeinfo elides to ancestor with identical info
FAIL:  merge_tests.py 50: merge to path with switched children
FAIL:  merge_tests.py 52: mergeinfo can explicitly be empty
FAIL:  merge_tests.py 62: subtrees can lose non-inheritable ranges
FAIL:  merge_tests.py 63: merge to sparse directories
FAIL:  merge_tests.py 69: command line supports cherry picked merge ranges
FAIL:  merge_tests.py 70: merge of propchange on subdir raises conflict
FAIL:  merge_tests.py 77: subtrees added after start of merge range are ok
FAIL:  merge_tests.py 79: merge --reintegrate with renamed file on branch
FAIL:  merge_tests.py 96: don't explicitly record implicit mergeinfo
FAIL:  merge_tests.py 98: subtree ranges might not intersect with target
FAIL:  merge_tests.py 99: subtree merge source might not exist
FAIL:  merge_tests.py 106: target and subtrees need nonintersecting revs
FAIL:  merge_tests.py 126: merge --reintegrate with subtree mergeinfo
FAIL:  update_tests.py 36: mergeinfo does not elide after update
FAIL:  log_tests.py 27: log -g and explicit mergeinfo replacing inherited

* subversion/libsvn_client/merge.c
  (path_is_subtree, subtree_touched_by_merge): New.
  (do_directory_merge): Don't reprocess the first child with mergeinfo, that
  is the merge target and has already been processed.  Don't set mergeinfo on
  any path that was modified by the merge.  Currently "modified" includes
  skips and additions to a path or one of its subtrees.