Disclaimer: I haven't looked at this codebase in a reeeeeally long time. But this code in cmdline.c reads differently than my now-naive eyes would expect:
/* If neither --non-interactive nor --force-interactive was passed, * be interactive if stdin is a terminal. * If --force-interactive was passed, always be interactive. */ if (!force_interactive && !*non_interactive) *non_interactive = svn_cmdline__stdin_is_a_terminal(); This looks to have been introduced relatively recently, in r1925937 ( https://svn.apache.org/viewvc/?view=revision&revision=1925937). I guess I would expect it to read: if (!force_interactive && !*non_interactive) *non_interactive = !svn_cmdline__stdin_is_a_terminal(); That is, be non-interactive if stdin is NOT a terminal. But, yeah, see the disclaimer above. :-) -- Mike On Wed, Jun 18, 2025 at 4:59 PM Branko Čibej <br...@apache.org> wrote: > On 18. 6. 25 22:40, Branko Čibej wrote: > > This is with a fresh build of today's trunk: > > $ /Volumes/svn-test/trunk/subversion/svn/svn commit > /Users/brane/src/svn/repos/trunk/subversion/svn/svn.c:3373: > (apr_err=SVN_ERR_CL_INSUFFICIENT_ARGS) > svn: E205001: Try 'svn help commit' for more information > /Users/brane/src/svn/repos/trunk/subversion/svn/commit-cmd.c:185, > /Users/brane/src/svn/repos/trunk/subversion/libsvn_client/commit.c:1097, > /Users/brane/src/svn/repos/trunk/subversion/libsvn_client/commit.c:156: > (apr_err=SVN_ERR_CL_INSUFFICIENT_ARGS) > svn: E205001: Commit failed (details follow): > /Users/brane/src/svn/repos/trunk/subversion/libsvn_client/commit.c:907, > /Users/brane/src/svn/repos/trunk/subversion/svn/util.c:449: > (apr_err=SVN_ERR_CL_INSUFFICIENT_ARGS) > svn: E205001: Cannot invoke editor to get log message when non-interactive > > > What? svn 1.14.5 works as expected, with the same ~/.subversion/config > file. I have no clue where this 'non-interactive' thing came from. > > Note: I have local changes in the macOS Keychain auth provider, but it > never gets that far, since it fails during argument parsing. > > > > Non-interactive is indeed on, I traced this to svn_cl__get_log_message() > where the baton says: lmb->non_interactive = 1. Also note that lmb->editor_cmd > = NULL, which is kind of impossible given that I have one defined in > ~/.subversion/config. > > > -- Brane > > (lldb) > Process 3212 stopped > * thread #1, queue = 'com.apple.main-thread', stop reason = step over > frame #0: 0x0000000100036658 > svn`svn_cl__get_log_message(log_msg=0x000000016fdfe508, > tmp_file=0x000000016fdfe3c8, commit_items=0x000000015a110d70, > baton=0x000000015a027a68, pool=0x000000015a013028) at util.c:350:51 > 347 svn_stringbuf_t *message = NULL; > 348 > 349 /* Set default message. */ > -> 350 default_msg = svn_stringbuf_create(APR_EOL_STR, pool); > 351 svn_stringbuf_appendcstr(default_msg, EDITOR_EOF_PREFIX); > 352 svn_stringbuf_appendcstr(default_msg, APR_EOL_STR > APR_EOL_STR); > 353 > Target 0: (svn) stopped. > (lldb) p *lmb > (log_msg_baton) { > editor_cmd = 0x0000000000000000 > message = 0x0000000000000000 > message_encoding = 0x0000000000000000 > base_dir = 0x000000015a026e68 "/Users/brane/src/svn/repos/trunk" > tmpfile_left = 0x0000000000000000 > non_interactive = 1 > config = 0x000000015a0138d0 > keep_locks = 0 > pool = 0x000000015a013028 > } > >