You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2010/02/02 12:39:48 UTC

svn commit: r905587 - /subversion/trunk/subversion/tests/cmdline/update_tests.py

Author: rhuijben
Date: Tue Feb  2 11:39:48 2010
New Revision: 905587

URL: http://svn.apache.org/viewvc?rev=905587&view=rev
Log:
This patch adds a very simple testcase to support issue #3569:

I can summarize this issue by:
$ svn up --depth files <directory>
$ svn up <directory>

You would expect that the last 'svn up' makes the working copy 'complete',
but you will see that this case misses all new child directories added
before the 'svn up --depth <below-dir-depth>'.

The more generic case 'svn up --depth empty <directory>' is tested in
this new testcase as it is a very simple to build testcase that just
checks the inner issue.

(This issue is triggered by AnkhSVN users via a file selector UI where
 you can also choose to update directories with depth empty)

* subversion/tests/cmdline/update_tests.py
  (update_empty_hides_entries): New function.
  (test_list): Add test

Modified:
    subversion/trunk/subversion/tests/cmdline/update_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/update_tests.py?rev=905587&r1=905586&r2=905587&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/update_tests.py Tue Feb  2 11:39:48 2010
@@ -4864,6 +4864,76 @@
                                         expected_disk,
                                         expected_status)
 
+#----------------------------------------------------------------------
+# Test for issue #3659 svn update --depth <DEPTH> allows making a working
+# copy incomplete.
+#
+# XFail until issue #3659 is fixed.  This test needs extension to map some
+# real use cases (all add operations are missing if a directory is updated
+# without its children.)
+def update_empty_hides_entries(sbox):
+  "svn up --depth empty hides entries for next update"
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  expected_disk_empty = []
+  expected_status_empty = []
+
+  expected_disk = svntest.main.greek_state.copy()
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+
+  # Update to revision 0 - Removes all files from WC
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None,
+                                        expected_disk_empty,
+                                        expected_status_empty,
+                                        None, None, None,
+                                        None, None, 1,
+                                        '-r', '0',
+                                        wc_dir)
+
+  # Now update back to HEAD
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None,
+                                        expected_disk,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, 1,
+                                        wc_dir)
+
+  # Update to revision 0 - Removes all files from WC
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None,
+                                        expected_disk_empty,
+                                        expected_status_empty,
+                                        None, None, None,
+                                        None, None, 1,
+                                        '-r', '0',
+                                        wc_dir)
+
+  # Update the directory itself back to HEAD
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None,
+                                        expected_disk_empty,
+                                        expected_status_empty,
+                                        None, None, None,
+                                        None, None, 1,
+                                        '--depth', 'empty',
+                                        wc_dir)
+
+  # Now update the rest back to head
+  
+  # This operation is currently a NO-OP, because the WC-Crawler
+  # tells the repository that it contains a full tree of the HEAD
+  # revision.
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None,
+                                        expected_disk,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, 1,
+                                        wc_dir)
+
 
 #######################################################################
 # Run the tests
@@ -4931,6 +5001,7 @@
               set_deep_depth_on_target_with_shallow_children,
               update_wc_of_dir_to_rev_not_containing_this_dir,
               XFail(update_deleted_locked_files),
+              XFail(update_empty_hides_entries),
              ]
 
 if __name__ == '__main__':