Per discussion with jcorvel:
jcorvel_at_apache.org wrote on Wed, May 18, 2011 at 21:23:42 -0000:
> +# 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()
read_only = True
> + 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',
> + }
Two ideas here (one of them by Johan):
* Check 'info' for both iota and IOTA
* Check some field other than 'Schedule' in order to verify that 'info'
really printed info for the right file (rather than the wrong file's
info along with the right file's 'Schedule' field)
> +
> + svntest.actions.run_and_verify_info([expected_info], iota_path)
Received on 2011-05-19 10:37:58 CEST