I've reported the following bug on

  https://github.com/termux/termux-packages/issues/18537

Since this is specific to svn, I'm reporting it here too.
In particular, I'm wondering what special thing svn does
to trigger the failure compared to the shell.

With "svn diff", I use the --diff-cmd option with my own diff utility,
which is a script that runs an interpreter using /usr/bin/env. I use
this config on various machines, including on my Android phones in
Termux. After the upgrade to Android 14, this is no longer working.

To reproduce:

1. In ~/bin, add a "mydiff" script that starts with "#!/usr/bin/env sh"
   (for this test, it doesn't need to do anything, i.e. it may contain
   just this line).

2. In a Subversion working copy, modify a file (in order to have an
   non-empty diff).

3. Run "svn diff --diff-cmd mydiff".

I get an error like

Index: perso/TODO
===================================================================
exec of 'mydiff' failed: No such file or directorysvn: E200012: 'mydiff' 
returned 255

i.e. the execution of "mydiff" fails.

Note that running "mydiff" from the shell does not give an error.
The issue occurs only with "svn diff --diff-cmd mydiff".

And if "mydiff" starts with "#!/bin/sh", then
"svn diff --diff-cmd mydiff" works fine.

Note about the use of "/usr/bin/env": with the actual script, this is
actually "#!/usr/bin/env zsh" with the goal of using the same script
on various platforms (where zsh can be at various places).

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply via email to