Guo Rui <timmyguo@mail.ustc.edu.cn> (firemeteor)


Patch Suggested
r872576, r872570, r872562, r872561, r872541, r872398, r872397, r872396, r872372, r872371, r872366, r872339, r872338, r872264, r872214, r872132, r872128, r872126, r872061, r872060, r872045, r872015, r872014, r872013, r872012, r871839, r871838, r871837, r871836, r871835, r871815, r871798, r871787, r871778, r871776, r871729, r871654, r871647, r871646, r871643, r871627, r871567, r871457, r871434, r871432, r871205, r871176, r871175, r870812, r870747, r870746, r870738, r870370 r870325

r870325 | kfogel | 2008-04-04 02:24:51 +0000 (Fri, 04 Apr 2008)

Documentation improvements for sparse-directories / --depth support.

Suggested by: Guo Rui <timmyguo@mail.ustc.edu.cn>

* subversion/include/svn_types.h
  (svn_depth_unknown): Document how client and server may interpret this.

* notes/sparse-directories.txt: Clarify various things.


r870370 | kfogel | 2008-04-04 21:11:13 +0000 (Fri, 04 Apr 2008)

* notes/sparse-directories.txt: Bring back some examples demonstrating
    the deselection of sub-trees, put into a special unimplemented section.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>


r870738 | kfogel | 2008-04-17 17:26:37 +0000 (Thu, 17 Apr 2008)

Add tests for issue #2843, the as-yet-unimplemented depth fold-up behavior.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>
(I made minor tweaks to doc strings, comments, and formatting.)

* subversion/tests/cmdline/depth_tests.py
  (depth_folding_clean_trees_1, depth_folding_clean_trees_2,
   depth_fold_expand_clean_trees): New tests.
  (test_list): Run them XFail.


r870746 | stylesen | 2008-04-18 12:08:55 +0000 (Fri, 18 Apr 2008)

* subversion/tests/cmdline/depth_tests.py
  (depth_fold_expand_clean_trees): Fix a silly bug caused by copy/paste.
   The last expected_status assignment should be expected_disk.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>


r870747 | stylesen | 2008-04-18 12:12:38 +0000 (Fri, 18 Apr 2008)

Add test case to checkout a subtree with depth immediates and verify the same.

* subversion/tests/cmdline/depth_tests.py
  (pull_in_tree_with_depth_option): New, pull in directory A with
   --depth=immediates and see whether the depth of A is set to immediates
  (test_list): Add pull_in_tree_with_depth_option

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>
(Tweaked by me)


r870812 | kfogel | 2008-04-21 16:40:15 +0000 (Mon, 21 Apr 2008)

Add test case to verify that folding a subtree will not destroy to content of
unversioned & modified items.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>
(Only minor tweaks by me.)

* subversion/tests/cmdline/depth_tests.py
  (fold_tree_with_unversioned_modified_items): New test.
  (test_lists): Run it XFail


r871175 | kfogel | 2008-05-08 20:26:46 +0000 (Thu, 08 May 2008)

Introduce svn_wc_add3(), which takes a depth parameter.  This makes
'svn add --depth' work the same way as commit, update, etc.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>

* subversion/include/svn_wc.h, subversion/libsvn_wc/adm_ops.c
  (svn_wc_add3): New function.
  (svn_wc_add2): Deprecate.

* subversion/libsvn_wc/copy.c
  (copy_added_file_administratively, copy_added_dir_administratively,
   copy_dir_administratively): Call svn_wc_add3 now.

* subversion/libsvn_client/merge.c
  (merge_dir_added): Call svn_wc_add3 now.

* subversion/libsvn_client/copy.c
  (repos_to_wc_copy_single): Call svn_wc_add3 now.

* subversion/libsvn_client/add.c
  (add_file, add_dir_recursive, add_parent_dirs): Call svn_wc_add3 now.
  (add): Same, and always call add_dir_recursive for directories.
    Add braces to conditional chain, for readability.
  (svn_cl__make_local_parents): Call svn_client_add4 with svn_depth_infinity.

* subversion/tests/cmdline/depth_tests.py
  (add_tree_with_depth): New name for add_tree_with_depth_files.
    Verify the depth, and test --force and --parents.
  (test_list): Adjust accordingly.


r871176 | kfogel | 2008-05-08 20:37:44 +0000 (Thu, 08 May 2008)

* subversion/libsvn_client/add.c
  (svn_client_add4): Unfold some duplicated code.  No functional change.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>


r871205 | kfogel | 2008-05-12 06:26:02 +0000 (Mon, 12 May 2008)

* subversion/include/svn_client.h, subversion/libsvn_client/add.c
  (svn_client_add3): Map non-recursive to svn_depth_empty for
    compatibility with pre-1.5 API, as should have done in r28827.

Patch by: Guo Rui <timmyguo@mail.ustc.edu.cn>


r871432 | firemeteor | 2008-05-22 16:22:49 +0000 (Thu, 22 May 2008)

Created feature branch for issue 2843.

r871434 | firemeteor | 2008-05-22 16:46:46 +0000 (Thu, 22 May 2008)

On the issue-2843-dev branch:

Tune the expected_output so that we only expect report on root when folding a
subtree.

* subversion/tests/cmdlind/depth_tests.py
  (depth_folding_clean_trees_2, depth_fold_expand_clean_trees,
  fold_tree_with_unversioned_modified_items): Tune expected_output.


r871457 | firemeteor | 2008-05-23 06:01:22 +0000 (Fri, 23 May 2008)

* COMMITTERS (firemeteor): Added Guo Rui for issue-2843-dev branch.


r871567 | firemeteor | 2008-05-28 12:28:38 +0000 (Wed, 28 May 2008)

On the issue-2843-dev branch:
Remove the protective check against cropping the wc.

* subversion/libsvn_wc/update_editor.c
  (make_editor): Remove the protective check.


r871627 | firemeteor | 2008-06-01 15:09:55 +0000 (Sun, 01 Jun 2008)

On the issue-2843-dev branch:

Initial implementation of the cropping logic. 
No notification is generated yet.

* subversion/libsvn_wc/crop.c: New file.
  (svn_wc_crop_tree): New public function.
  (crop_children): New internal helper.

* subversion/include/svn_wc.h
  (svn_wc_crop_tree): New function.


r871643 | firemeteor | 2008-06-03 15:21:44 +0000 (Tue, 03 Jun 2008)

On the issue-2843-dev branch:

Generate notifications in the cropping logic. And actually invoke the cropping
logic in the update logic. Preliminary debug has made the cropping logic work
to some degree. However, many tests fail unexpectedly. Further debugging is
needed.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree, crop_children): Generate notifications. Some adm_access
    related tunning to make it work. And some other bugs fixed.

* subversion/libsvn_client/update.c
  (svn_client__update_internal): Lock enough depth and call
    svn_wc_crop_tree().


r871646 | firemeteor | 2008-06-03 16:46:11 +0000 (Tue, 03 Jun 2008)

On the issue-2843-dev branch:

Fix a bug introduced in r31493.

* subversion/libsvn_wc/update_editor.c
  (make_editor): Don't wrap the update editor if the depth is sticky.


r871647 | firemeteor | 2008-06-03 18:47:07 +0000 (Tue, 03 Jun 2008)

On the issue-2843-dev branch:

Fixes bugs in both the cropping logic and the test cases. 
Two test cases have been passed. 

Known problems:
1. The notification logic is not perfect yet, still leave the last
   test case as XFail(), even though it seems to have been passed. 

2. If the target itself is also cropped, the update logic will bring
   it back later. Should we handle cropping AFTER update?

* subversion/libsvn_wc/crop.c
  (crop_children): Do not return too early.

* subversion/tests/cmdline/depth_tests.py
  (depth_folding_clean_tree_1, 
    depth_fold_expand_clean_tree): Fix malformed expected_* informations.
  (depth_folding_clean_tree_2): Same. Also fill in the missed --set-depth
    option.
  (fold_tree_with_unversioned_modified_items): Same as the first. Also tune
    the expected output.
  (test_list): depth_folding_clean_tree_1 and depth_fold_expand_clean_tree are
    no longer XFail.


r871654 | firemeteor | 2008-06-04 11:50:10 +0000 (Wed, 04 Jun 2008)

On the issue-2843-dev branch:

* subversion/libsvn_wc/crop.c
  (crop_children): Update document comments.


r871729 | firemeteor | 2008-06-09 12:12:35 +0000 (Mon, 09 Jun 2008)

On the issue-2843-dev branch.

According to Karl: 1) report 'D' on those locally modified items is Okay. And
2) crop a subtree to svn_depth_empty should not take the root away. This
purpose should be covered by a dedicated enum, such as svn_depth_excluded.

* subversion/tests/cmdline/depth_tests.py
  (fold_tree_with_unversioned_modified_items): Tune comments.
  (test_list): The above test is no longer XFAIL.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): don't crop the root on svn_depth_empty, and prepare for
   svn_depth_exclude a bit.



r871776 | firemeteor | 2008-06-11 07:25:15 +0000 (Wed, 11 Jun 2008)

On issue-2843-dev branch:

Remove the test case which expects svn_depth_empty to bring away the root of
the target tree. A new test that uses svn_depth_exclude instead will be
introduced later.

* subversion/tests/cmdline/depth_tests.py
  (depth_fold_clean_trees_2): Comment out the last test in this suite.
  (test_list): The above test suite is no longer XFail().


r871778 | firemeteor | 2008-06-11 15:01:14 +0000 (Wed, 11 Jun 2008)

On the issue-2843-dev branch:

Handle svn_depth_exclude in the cropping logic. However, other parts of the
libsvn_wc code still don't honor the svn_depth_exclude flag.

* subversion/libsvn_wc/entries.c
  (write_entry): Store svn_depth_exclude for subdir entries.

* subversion/libsvn_wc/README
  (depth): Document the change in entries.c.

* subversion/libsvn_wc/lock.c
  (do_open): Skip entry with svn_depth_exclude depth.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_remove_from_revision): Skip excluded subdir entries and preserve
   excluded entry in parent dir.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Handle svn_depth_exclude properly, mark target as
   svn_depth_exclude if the parent expects it.
  (crop_children): Same. Also fold the notify branches.

* subversion/libsvn_client/update.c
  (svn_client__update_internal): Skip update totally on svn_depth_exclude.


r871787 | firemeteor | 2008-06-12 15:15:08 +0000 (Thu, 12 Jun 2008)

On issue-2843-dev branch:

Make 'svn update' honor the svn_depth_exclude flag. It works for clean wc
now. And all existing test suites remained working. However, the crawler has
not been updated yet. So filtering modification in the excluded branch will
not work now.

The svn_wc_entry() and svn_wc_entries_read() now filter out excluded item when
show_hidden is FALSE.

* subversion/include/svn_wc.h
  (svn_wc_entry, svn_wc_entries_read, svn_wc_walk_entries3): Document the 
   new filter behavior.

* subversion/libsvn_wc/adm_ops.c
  (tweak_entries, svn_wc__do_update_cleanup): Properly tweak excluded entry.

* subversion/libsvn_wc/ambient_depth_filter_editor.c
  (make_dir_baton): Update the filter logic.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Remove the defensive check against excluded target.

* subversion/libsvn_wc/entries.c
  (read_entries):
* subversion/libsvn_wc/lock.c
  (prune_deleted): Update behavior to take svn_depth_exclude into account.

* subversion/libsvn_wc/update_editor.c
  (complete_directory): Clear the exclude flag properly when needed.

* subversion/svn/main.c
  (main): Accept value 'exclude' for the --set-depth option.


r871798 | firemeteor | 2008-06-13 08:23:11 +0000 (Fri, 13 Jun 2008)

On the issue-2843-dev branch:

Make 'svn update' totally work for svn_depth_exclude. The next step will be a
test suite for this.

* subversion/libsvn_wc/ambient_depth_filter_editor.c
  (make_dir_baton): Permit to explicitly pull in excluded target.
* subversion/libsvn_wc/update_editor.c
  (complete_directory): Similarly, clear the exclude flag in this situation.

* subversion/libsvn_wc/adm_crawler.c
  (report_revision_and_depths): Explicitly report exclude.
  (svn_wc_crawl_revisions3): Document update.


r871815 | firemeteor | 2008-06-15 08:24:37 +0000 (Sun, 15 Jun 2008)

On the issue-2843-dev branch.

Some tweaks according to Karl's review.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Use a specialized TODO mask.
  (crop_children): The same, also add some documents.

* subversion/libsvn_wc/ambient_depth_filter_editor.c
  (make_dir_baton): enclose boolean expression with parens. 
  
* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): Update comment.

* subversion/libsvn_wc/adm_ops.c
  (tweak_entries): Update comment.
  (svn_wc_remove_from_revision_control): Use a block-local variable for
   readability.



r871835 | firemeteor | 2008-06-17 12:21:40 +0000 (Tue, 17 Jun 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/crop.c
  (crop_children): Throw an exception on unexpected entry kind.


r871836 | firemeteor | 2008-06-17 12:42:53 +0000 (Tue, 17 Jun 2008)

On the issue-2843-dev branch.

Follows r31741. Revert the readability tuning on
svn_wc_remove_from_revision_control(), This should be done first on trunk.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_remove_from_revision_control): Revert the readability tuning.



r871837 | firemeteor | 2008-06-17 12:59:30 +0000 (Tue, 17 Jun 2008)

A small readability tweak.  I mistakenly did it in my branch (issue-2843-dev,
r31741). Now, I revert that change and do it in trunk first.

Approved by: kfogel

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_remove_from_revision_control): Improve readability by introducing
    a block local variable.



r871838 | firemeteor | 2008-06-17 13:14:26 +0000 (Tue, 17 Jun 2008)

On the issue-2843-dev branch.

Introduce a new test case to verify the behavior of svn concerning
svn_depth_exclude flag. More test cases will come later.

* subversion/tests/cmdline/depth_tests.py
  (excluded_path_operation): New test.
  (test_list): List the new test as XFail.



r871839 | firemeteor | 2008-06-17 13:56:26 +0000 (Tue, 17 Jun 2008)

On the issue-2843-dev branch.

This commit solves on problem exposed by the new test case in r31764.
We cannot report excluded branch to server when depth_is_sticky, otherwise the
server will not send contents of that path and we will be in trouble.
Moreover, we have to report delete_path() on it(when !report_everything),
to ensure that the server will send us full content.

* subversion/include/svn_wc.h,
  subversion/libsvn_wc/adm_crawler.c
  (svn_wc_crawl_revision4): New API, with new parameter honor_depth_exclude.
  (svn_wc_crawl_revision3): Deprecated.
  
* subversion/libsvn_client/switch.c
  (svn_client__switch_internal):
* subversion/libsvn_client/status.c
  (svn_client_status3):
* subversion/libsvn_client/diff.c
  (diff_repos_wc):
* subversion/libsvn_client/update.c
  (svn_client__update_internal): Adjust all callers of the deprecated API.



r872012 | firemeteor | 2008-07-01 07:18:40 +0000 (Tue, 01 Jul 2008)

On the issue-2843-dev branch.

* subversion/tests/cmdline/depth_tests.py
  (excluded_path_operation): Tune the test logic a little bit.


r872013 | firemeteor | 2008-07-01 07:20:02 +0000 (Tue, 01 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): Tune some comments.

Suggested by: kfogel


r872014 | firemeteor | 2008-07-01 09:43:13 +0000 (Tue, 01 Jul 2008)

On the issue-2843-dev branch.

Merged from trunk r31359:r31939 to catch up.


r872015 | firemeteor | 2008-07-01 13:31:16 +0000 (Tue, 01 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_remove_from_revision_control): Fix a problem introduced in merge.

* subversion/libsvn_wc/entries.c
  (read_entries): Verify depth value as suggested by Karl.



r872045 | firemeteor | 2008-07-02 12:30:17 +0000 (Wed, 02 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/entries.c
  (read_entry): Use logical instead of bitwise operators.

Suggested by: blair
              Lorenz <lorenznl@yahoo.com>


r872060 | firemeteor | 2008-07-03 12:39:41 +0000 (Thu, 03 Jul 2008)

On issue-2843-dev branch.

Check those calls to svn_wc_entry(), svn_wc_entries_read() and
svn_wc_walk_entries3() with show_hidden set to TRUE. The caller should be
prepared to handle excluded items. This only covers part of the potential
modification positions.

* subversion/libsvn_wc/relocate.c
  (svn_wc_reloacate3):
* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree):
* subversion/libsvn_wc/props.c
  (svn_wc_prop_list, svn_wc_prop_get, modified_props):
* subversion/libsvn_wc/entries.c
  (svn_wc_walk_entries3):
* subversion/libsvn_wc/copy.c
  (copy_added_dir_administratively):
* subversion/libsvn_wc/adm_ops.c
  (process_committed_internal, svn_wc_delete3, revert_entry):
* subversion/libsvn_client/merge.c
  (get_mergeinfo_walk_cb):
* subversion/libsvn_client/commit_util.c
  (harvest_committables): Handles svn_depth_exclude or Add TODO for later
   checking. 



r872061 | firemeteor | 2008-07-03 14:28:08 +0000 (Thu, 03 Jul 2008)

On the issue-2843-dev branch.

Fix copying excluded items.

* subversion/libsvn_wc/copy.c
  (post_copy_cleanup): Skip excluded entry.

* subversion/tests/cmdline/depth_tests.py
  (excluded_path_operation): Add copy test.



r872126 | firemeteor | 2008-07-10 08:52:48 +0000 (Thu, 10 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/adm_ops.c
  (process_committed_internal, 
  svn_wc_deleted3, revert_entry): Clarify the comments a bit. 
   Suggested by kfogel.
  (svn_wc_add3): Report existing entry when the target is found excluded.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Do not setup exclude flag if the target tree is 
  not yet in the repos.


r872128 | firemeteor | 2008-07-10 09:21:45 +0000 (Thu, 10 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/crop.c
  (crop_children): Format a TODO entry.
  (svn_wc_crop_tree): Don't crop on scheduled delete. This finishes one TODO.


r872132 | firemeteor | 2008-07-10 13:28:17 +0000 (Thu, 10 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/props.c
  (svn_wc_prop_list, svn_wc_prop_get, modified_props): Don't try to get hidden
   entry at all. This is better than check against exclude flag later.


r872214 | firemeteor | 2008-07-16 17:19:23 +0000 (Wed, 16 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/relocate.c
  (svn_wc_relocate3): Relocate the excluded target as a single entry.



r872264 | firemeteor | 2008-07-19 14:40:51 +0000 (Sat, 19 Jul 2008)

On the issue-2843-dev branch.

* subversion/tests/cmdline/depth_tests.py
  (excluded_path_update_operation): Renamed from excluded_path_operation.
   And...
  (excluded_path_misc_operation): ...extract some tests from the above one
   into this test suite. More tests are added too.
  (test_list): Update accordingly. And excluded_path_update_operation is no
   longer XFail().


r872338 | firemeteor | 2008-07-23 14:43:06 +0000 (Wed, 23 Jul 2008)

On the issue-2843-dev branch.

Introduce a new test case to demonstrate an expected behavior inspired by
Karl: 'svn update' should receive the removal of an exclude path in the
repository and properly clear the local exclude flag. This need cooperation
between the server and the client and thus will not work now.

* subversion/tests/cmdline/depth_tests.py
  (excluded_receive_remote_removal): New test.
  (test_list): Add the new test as XFail().



r872339 | firemeteor | 2008-07-23 15:17:02 +0000 (Wed, 23 Jul 2008)

On the issue-2843-dev branch.

Fix a problem when trying to pull in an excluded target while it is actually
gone in the repos.

* subversion/libsvn_wc/update_editor.c
  (do_entry_deletion): Add declaration.
  (complete_directory): Remove the target if it is both excluded locally and
   removed in repos.


r872366 | firemeteor | 2008-07-24 14:21:27 +0000 (Thu, 24 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/update_editor.c
  (complete_directory): Use the full target path when retrieving adm_access.



r872371 | firemeteor | 2008-07-25 12:02:12 +0000 (Fri, 25 Jul 2008)

On the issue-2843-dev branch.

Checking the show_hidden parameters in entry API calls. Tag some suspicious
show_hidden = TRUE call with TODOs, for further check.

* subversion/libsvn_wc/props.c
  (svn_wc__working_props_committed, svn_wc__loggy_revert_props_create,
   svn_wc__loggy_revert_props_restore): Tag a suspicious show_hidden as TODO.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Add an TODO item for switched target.

* subversion/libsvn_wc/log.c
  (remove_deleted_entry): Confirm with a comment.
  (log_do_committed): Tag a suspicious show_hidden as TODO.

* subversion/libsvn_wc/adm_ops.c
  (process_committed_internal): Recheck and finish an TODO. Update the
   comment.
  (revert_entry): Confirm with a comment.

* subversion/libsvn_client/merge.c
  (check_scheme_match): Tag a suspicious show_hidden as TODO.

* subversion/libsvn_client/ra.c
  (svn_client_uuid_from_path): Confirm with a comment.

* subversion/libsvn_client/commit_util.c
  (do_item_commit): Tag a suspicious show_hidden as TODO.



r872372 | firemeteor | 2008-07-25 15:18:01 +0000 (Fri, 25 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_wc/crop.c
  (svn_wc_crop_tree): Explicitly prohibit excluding switched path.
  (crop_children): Move a TODO item to svn_wc_crop_tree().

* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): Add a comment about excluding switched 
   path being prohibited.


r872396 | firemeteor | 2008-07-29 14:23:49 +0000 (Tue, 29 Jul 2008)

On the issue-2843-dev branch.

* subversion/tests/cmdline/depth_tests.py
  (excluded_receive_remote_removal): Correct the test behavior. Tuned the
   formation.
  (test_list): Replace tab with spaces.



r872397 | firemeteor | 2008-07-29 14:28:00 +0000 (Tue, 29 Jul 2008)

On the issue-2843-dev branch.

* subversion/libsvn_client/switch.c
  (svn_client__switch_internal): Handles cropping during switch.



r872398 | firemeteor | 2008-07-29 14:47:29 +0000 (Tue, 29 Jul 2008)

On the issue-2843-dev branch.

Receive remote removal on excluded items.

* subversion/libsvn_wc/update_editor.c
  (do_entry_deletion): Handles deletion of excluded items.
  (complete_directory): Correct the check of removed target. And don't need to
   clear exclude flag before call to do_entry_deletion() anymore.

* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): Report revision of the parent directory
  instead of SVN_INVALID_REVNUM for excluded path.

* subversion/libsvn_repos/reporter.c
  (delta_dirs): Drive the editor upon deletion of excluded path.



r872541 | firemeteor | 2008-08-14 09:44:52 +0000 (Thu, 14 Aug 2008)

Fix working copy corruption which happens when copying a file
into a directory that exists in the entries file of its parent,
but is not physically present on disk. This can happen when
users remove a directory from the working copy without telling
Subversion about it.

The case where the destination is a file was already covered by
the existing code. This commit extends the check to consider
directories, too.

See this thread for details:
http://subversion.tigris.org/servlets/ReadMsg?list=dev&msgNo=141707
Date: Sun, 6 Jul 2008 00:39:43 +0800
From: "Rui, Guo" <timmyguo@mail.ustc.edu.cn>
To: subversion development <dev@subversion.tigris.org>
Message-ID: <20080705163943.GD8838@Behemoth.ustc.edu.cn>

* subversion/libsvn_wc/copy.c
  (copy_file_administratively): When checking whether the destination
   already exists, dst_basename may be a directory. Catch that case, too.

Approved by: stsp



r872561 | firemeteor | 2008-08-15 06:42:04 +0000 (Fri, 15 Aug 2008)

On the issue-2843-dev branch.

Improves the sanity check against copy destination. This covers the situation
of copy into hidden items (excluded, absent etc.)

* subversion/libsvn_wc/copy.c
  (copy_added_dir_administratively): Settle a TODO item.
  (svn_wc_copy2): Sanity check to capture missing/hidden destination.

* subversion/libsvn_client/copy.c
  (repos_to_wc_copy): Similar sanity check.



r872562 | firemeteor | 2008-08-15 08:06:43 +0000 (Fri, 15 Aug 2008)

On the issue-2843-dev branch.

Merged from trunk r31940:r32487.



r872570 | firemeteor | 2008-08-15 14:41:31 +0000 (Fri, 15 Aug 2008)

On the issue-2843-dev branch.

Turn off some suspicious show_hidden flags to svn_wc_entry() call.

* subversion/libsvn_wc/props.c
  (svn_wc__working_props_committed, 
   svn_wc__loggy_revert_props_create,
   svn_wc__loggy_revert_props_restore): Turn off the flag, but leave the TODO
    entry for later recheck.
 
* subversion/libsvn_client/commit_util.c
  (do_item_commit): The same as above.

* subversion/libsvn_wc/log.c
  (log_do_committed): Turn off the flag.

* subversion/libsvn_client/merge.c
  (check_scheme_match): The same as above.



r872576 | firemeteor | 2008-08-16 06:05:08 +0000 (Sat, 16 Aug 2008)

On the issue-2843-dev branch.

* subversion/libsvn_client/commit_util.c
  (do_item_commit): Recheck and confirm the modification to show_hidden flag.
   Tune the comment and settle the TODO item.