Author: rhuijben
Date: Thu Aug 5 12:50:00 2010
New Revision: 982587
URL: http://svn.apache.org/viewvc?rev=982587&view=rev
Log:
Add regression test that shows that the actual properties of copied files
are not set correctly after an update brings them in.
* subversion/tests/cmdline/update_tests.py
(add_moved_file_has_props): New function.
(test_list): Add add_moved_file_has_props as XFail.
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=982587&r1=982586&r2=982587&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/update_tests.py Thu Aug 5
12:50:00 2010
@@ -5582,6 +5582,49 @@ def mergeinfo_updates_merge_with_local_m
'pg', SVN_PROP_MERGEINFO, '-R',
A_COPY_path)
+#----------------------------------------------------------------------
+# Test for receiving modified properties on added files that were originally
+# moved from somewhere else. (Triggers locate_copyfrom behavior)
+def add_moved_file_has_props(sbox):
+ """update adding moved file receives modified props"""
+ sbox.build()
+
+ wc_dir = sbox.wc_dir
+
+ G = os.path.join(os.path.join(wc_dir, 'A', 'D', 'G'))
+ pi = os.path.join(G, 'pi')
+ G_new = os.path.join(wc_dir, 'G_new')
+
+ # Give pi some property
+ svntest.main.run_svn(None, 'ps', 'svn:eol-style', 'native', pi)
+ svntest.main.run_svn(None, 'ci', wc_dir, '-m', 'added eol-style')
+
+ svntest.actions.run_and_verify_svn(None, 'At revision 2.', [], 'up', wc_dir)
+
+ # Now move pi to a different place
+ svntest.main.run_svn(None, 'mkdir', G_new)
+ svntest.main.run_svn(None, 'mv', pi, G_new)
+ svntest.main.run_svn(None, 'ci', wc_dir, '-m', 'Moved pi to G_new')
+
+ svntest.actions.run_and_verify_svn(None, 'At revision 3.', [], 'up', wc_dir)
+
+
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 3)
+ expected_status.remove('A/D/G/pi')
+ expected_status.add({
+ 'G_new' : Item (status=' ', wc_rev=3),
+ 'G_new/pi' : Item (status=' ', wc_rev=3),
+ })
+
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+ svntest.main.run_svn(None, 'up', '-r', '0', G_new)
+ svntest.main.run_svn(None, 'up', wc_dir)
+
+ # This shouldn't show property modifications, but at r982550 it did.
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+
#######################################################################
# Run the tests
@@ -5650,6 +5693,7 @@ test_list = [ None,
XFail(update_deleted_locked_files),
XFail(update_empty_hides_entries),
mergeinfo_updates_merge_with_local_mods,
+ XFail(add_moved_file_has_props),
]
if __name__ == '__main__':