On 27 Jan 2021, Daniel Shahaf wrote:
You're welcome. I see only a few more nits; see below. (Some of them I noticed in the first iteration too, but I didn't want to pick too many nits then.) I'm happy that the patch is correct and committable, though it won't make the "Major features in this minor release" shortlist at the top of CHANGES.

Mmm, probably not, yeah :-).

Okay, I've addressed all your points -- thanks for the second review! -- and the revised version is attached. If you don't spot any more nits, I'll commit. (But more nits are certainly welcome, of course.)

The message I'm replying to and your message dated "Tue, 26 Jan 2021 22:23:52 -0600" were threaded at the same level (sibling nodes in my MUA's tree display), even though the latter quoted the former. I haven't investigated.

That's probably due to my having hit 'Reply' on one message and then manually copying-and-pasting some quoted text from another message later in the same thread. (Sometimes I do that when it's easier than re-starting my reply.)

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 1885938)
+++ subversion/svn/propedit-cmd.c       (working copy)
@@ -143,7 +143,9 @@
       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 1885938)
+++ subversion/tests/cmdline/prop_tests.py      (working copy)
@@ -2829,6 +2829,38 @@
                                         expected_status,
                                         extra_files=extra_files)
 
+
+# Test that editing a regular property creates a temporary file named
+# "svn-prop.tmp" whereas editing a revprop results in a temporary file
+# named "svn-revprop-rN.tmp" (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:
+  non_editor = 'af968da2ce9'
+
+  svntest.actions.run_and_verify_svn(
+    None,
+    '.*' + re.escape(non_editor) + r'.*svn-revprop-r1\.tmp.*',
+    'propedit', '--revprop', 
+    '--editor-cmd', non_editor,
+    '-r1', 'svn:log',
+    sbox.repo_url)
+
+  svntest.actions.run_and_verify_svn(
+    None,
+    '.*' + re.escape(non_editor) + r'.*svn-prop\.tmp.*',
+    'propedit', 
+    '--editor-cmd', non_editor,
+    'ignored-propname',
+    sbox.ospath('A/mu'))
+
+
 ########################################################################
 # Run the tests
 
@@ -2880,6 +2912,7 @@
               iprops_list_abspath,
               wc_propop_on_url,
               prop_conflict_root,
+              tmpfile_name_matches_prop_type,
              ]
 
 if __name__ == '__main__':

Reply via email to