On 26 Jan 2021, Daniel Shahaf wrote: >Karl Fogel wrote on Tue, Jan 26, 2021 at 16:11:31 -0600: >> This change is useful because many editors display the file's basename during >> editing (e.g., in a status line somewhere near the bottom of the screen). So >> if you get interrupted while editing a revprop, when you come back to your >> editor hours or days later, it's nice to have as many clues as possible as to >> what you were doing :-). > >Personally, my $EDITOR exposes a getpid() function, so I can do >«:echo system('ps --forest | grep -B10 ' . getpid())» to see what I was doing.
<giggle> Yes, of course :-). >I suppose the only thing this could break is $EDITOR automation (e.g., syntax >highlighting rules) that's keyed on the tmpfile's name, which should be >acceptable, by the same token that extending the CLI output is acceptable. Yes, I think people can adjust quite quickly to this, if they have such customizations. >Kinda wonder whether there's an easy way to get the property name into the >filename — escaped as needed (property names can contain colons and NTFS >doesn't like those in basenames) — but of course that's the best being the >enemy of the good. I thought about trying that too, but came to the same conclusion you did. >> +++ subversion/svn/propedit-cmd.c (working copy) >> @@ -143,7 +143,9 @@ > >«svn diff -x-p», please ☺ Ah, okay. I'll try to remember this for next time! >> +++ subversion/tests/cmdline/prop_tests.py (working copy) >> @@ -2829,6 +2829,33 @@ >> 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() > >Pass read_only=True. (Reduces test execution time.) W00t! Will do. >> + # 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 'af968da2ce9' on your system. >> + os.environ['SVN_EDITOR'] = 'af968da2ce9' > >This changes global state, which might break something in --parallel mode. >Just pass --editor-cmd. Gotcha. >> + svntest.actions.run_and_verify_svn(None, >> + >> ".*af968da2ce9.*svn-revprop-r1\\.tmp.*", > >style: Consider using «r''» string literals, or character classes rather than >backslash escapes. Good idea. I'm still not accustomed to r-strings in Python; I should get used to it. >> + 'propedit', '--revprop', >> + '-r1', 'svn:log', >> + sbox.repo_url) >> + >> + svntest.actions.run_and_verify_svn(None, >> + ".*af968da2ce9.*svn-prop\\.tmp.*", >> + 'propedit', 'ignored-propname', >> + os.path.join(sbox.wc_dir, 'A', 'mu')) > >style: Nowadays there's «sbox.ospath('A/mu')». Ah, cool. Just for the record, I copied the above from elsewhere in the test :-). But just because some of the source is outdated doesn't mean my new code has to be! I'll use the new way. >Bottom line: +0 on the change itself, but see the substantive review points >above. Thank you so much for the excellent review, Daniel! I will submit a new patch with your points addressed. >P.S. Your MUA doesn't wrap the email at 80 columns. Good for the patch, not >so good for the prose above it. *nod* I'll follow up with you privately about that, as I recently heard about it from someone else. I'd like to figure out what's going on & solve it. Best regards, -Karl