Author: jcorvel
Date: Wed May 18 21:23:42 2011
New Revision: 1124436
URL: http://svn.apache.org/viewvc?rev=1124436&view=rev
Log:
Add a regression test for issue #3865: 'svn' on Windows cannot address
scheduled-for-delete file, if another file differing only in case is
present on disk.
* subversion/tests/cmdline/copy_tests.py
(deleted_file_with_case_clash): New test, marked XFail for
'is_fs_case_insensitive'.
Modified:
subversion/trunk/subversion/tests/cmdline/copy_tests.py
Modified: subversion/trunk/subversion/tests/cmdline/copy_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/copy_tests.py?rev=1124436&r1=1124435&r2=1124436&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/copy_tests.py Wed May 18 21:23:42
2011
@@ -5119,6 +5119,43 @@ def copy_url_shortcut(sbox):
svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+# Regression test for issue #3865: 'svn' on Windows cannot address
+# scheduled-for-delete file, if another file differing only in case is
+# present on disk
+@XFail(svntest.main.is_fs_case_insensitive)
+@Issue(3865)
+def deleted_file_with_case_clash(sbox):
+ """address a deleted file hidden by case clash"""
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ iota_path = os.path.join(wc_dir, 'iota')
+ iota2_path = os.path.join(wc_dir, 'iota2')
+ IOTA_path = os.path.join(wc_dir, 'IOTA')
+
+ # Perform a case-only rename in two steps.
+ svntest.main.run_svn(None, 'move', iota_path, iota2_path)
+ svntest.main.run_svn(None, 'move', iota2_path, IOTA_path)
+
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
+ 'iota' : Item(status='D ', wc_rev=1),
+ 'IOTA' : Item(status='A ', copied='+', wc_rev='-'),
+ })
+
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+ # Perform an 'info' call, where we expect to be able to see the
+ # deleted file (which is hidden by the on-disk case-clashing file).
+ expected_info = {'Path' : re.escape(iota_path),
+ 'Schedule' : 'delete',
+ }
+
+ svntest.actions.run_and_verify_info([expected_info], iota_path)
+
+
########################################################################
# Run the tests
@@ -5224,6 +5261,7 @@ test_list = [ None,
move_wc_and_repo_dir_to_itself,
copy_wc_url_with_absent,
copy_url_shortcut,
+ deleted_file_with_case_clash,
]
if __name__ == '__main__':