Index: subversion/libsvn_wc/adm_ops.c =================================================================== --- subversion/libsvn_wc/adm_ops.c (revision 21887) +++ subversion/libsvn_wc/adm_ops.c (working copy) @@ -1702,10 +1702,13 @@ /* Reinstall props if we need to. Only rewrite the baseprops, if we're reverting a replacement. This is just an optimization. */ if (baseprops) - SVN_ERR(svn_wc__install_props(&log_accum, adm_access, name, baseprops, - baseprops, - entry->schedule == svn_wc_schedule_replace, - pool)); + { + SVN_ERR(svn_wc__install_props(&log_accum, adm_access, name, baseprops, + baseprops, + entry->schedule == svn_wc_schedule_replace, + pool)); + *reverted = TRUE; + } /* Clean up the copied state if this is a replacement. */ if (entry->schedule == svn_wc_schedule_replace Index: subversion/tests/cmdline/revert_tests.py =================================================================== --- subversion/tests/cmdline/revert_tests.py (revision 21887) +++ subversion/tests/cmdline/revert_tests.py (working copy) @@ -583,7 +583,55 @@ svntest.actions.run_and_verify_svn(None, [], [], "diff", wc_dir_2) svntest.actions.run_and_verify_svn(None, [], [], "revert", "-R", wc_dir_2) +def revert_propset__dir(sbox): + "revert a simple propset on a dir" + sbox.build() + wc_dir = sbox.wc_dir + a_path = os.path.join(wc_dir, 'A') + svntest.main.run_svn(None, 'propset', 'foo', 'x', a_path) + expected_output = "Reverted '" + a_path + "'" + svntest.actions.run_and_verify_svn(None, expected_output, [], "revert", + a_path) + +def revert_propset__file(sbox): + "revert a simple propset on a file" + + sbox.build() + wc_dir = sbox.wc_dir + iota_path = os.path.join(wc_dir, 'iota') + svntest.main.run_svn(None, 'propset', 'foo', 'x', iota_path) + expected_output = "Reverted '" + iota_path + "'" + svntest.actions.run_and_verify_svn(None, expected_output, [], "revert", + iota_path) + +def revert_propdel__dir(sbox): + "revert a simple propdel on a dir" + + sbox.build() + wc_dir = sbox.wc_dir + a_path = os.path.join(wc_dir, 'A') + svntest.main.run_svn(None, 'propset', 'foo', 'x', a_path) + svntest.main.run_svn(None, 'commit', '-m', 'ps', a_path) + svntest.main.run_svn(None, 'propdel', 'foo', a_path) + expected_output = "Reverted '" + a_path + "'" + svntest.actions.run_and_verify_svn(None, expected_output, [], "revert", + a_path) + +def revert_propdel__file(sbox): + "revert a simple propdel on a file" + + sbox.build() + wc_dir = sbox.wc_dir + iota_path = os.path.join(wc_dir, 'iota') + svntest.main.run_svn(None, 'propset', 'foo', 'x', iota_path) + svntest.main.run_svn(None, 'commit', '-m', 'ps', iota_path) + svntest.main.run_svn(None, 'propdel', 'foo', iota_path) + expected_output = "Reverted '" + iota_path + "'" + svntest.actions.run_and_verify_svn(None, expected_output, [], "revert", + iota_path) + + ######################################################################## # Run the tests @@ -600,6 +648,10 @@ revert_after_second_replace, revert_after_manual_conflict_resolution__text, revert_after_manual_conflict_resolution__prop, + revert_propset__dir, + revert_propset__file, + revert_propdel__dir, + revert_propdel__file, ] if __name__ == '__main__':