Okay, revised patch for review. I'm running the tests right now. If it passes the test suite, and you don't see any obvious further to the patch, I'll commit. Thanks again for your help, Daniel!
Best regards, -Karl
[[[ Distinguish between regular properties and revprops in tmpfile name. * subversion/svn/propedit-cmd.c (svn_cl__propedit): In the revprop case, create a tmpfile name that indicates that a revprop is being edited and on which revision. * subversion/tests/cmdline/prop_tests.py (tmpfile_name_matches_prop_type): New test function. (test_list): Run it. Review by: danielsh ]]] Index: subversion/svn/propedit-cmd.c =================================================================== --- subversion/svn/propedit-cmd.c (revision 1885929) +++ subversion/svn/propedit-cmd.c (working copy) @@ -143,7 +143,9 @@ svn_cl__propedit(apr_getopt_t *os, SVN_ERR(svn_cmdline__edit_string_externally( &propval, NULL, opt_state->editor_cmd, temp_dir, - propval, "svn-prop", + propval, + apr_psprintf(pool, "svn-revprop-r%ld", + (opt_state->start_revision.value.number)), ctx->config, svn_prop_needs_translation(pname), opt_state->encoding, pool)); Index: subversion/tests/cmdline/prop_tests.py =================================================================== --- subversion/tests/cmdline/prop_tests.py (revision 1885929) +++ subversion/tests/cmdline/prop_tests.py (working copy) @@ -2829,6 +2829,38 @@ def prop_conflict_root(sbox): expected_status, extra_files=extra_files) + +# Test that editing a regular property results in a temporary file +# based on the name "svn-prop" but editing a revprop results in a +# temporary file based on the name "svn-revprop-rN" (where "N" is +# the number of the revision whose revprop would be edited). +def tmpfile_name_matches_prop_type(sbox): + "propedit tmpfile name matches property type" + + sbox.build(read_only=True) + + # We want the editor invocation to fail -- all we care about is the + # name of the tmpfile left over after that failure. I'm guessing + # you don't have a editor named this on your system: + nonexistent_editor = 'af968da2ce9' + + svntest.actions.run_and_verify_svn( + None, + '.*' + nonexistent_editor + r'.*svn-revprop-r1\.tmp.*', + 'propedit', '--revprop', + '--editor-cmd', nonexistent_editor, + '-r1', 'svn:log', + sbox.repo_url) + + svntest.actions.run_and_verify_svn( + None, + '.*' + nonexistent_editor + r'.*svn-prop\.tmp.*', + 'propedit', + '--editor-cmd', nonexistent_editor, + 'ignored-propname', + sbox.ospath('A/mu')) + + ######################################################################## # Run the tests @@ -2880,6 +2912,7 @@ test_list = [ None, iprops_list_abspath, wc_propop_on_url, prop_conflict_root, + tmpfile_name_matches_prop_type, ] if __name__ == '__main__':