Working around –non-interactive problems in Leopard’s Subversion

Apparently, the –non-interactive flag is broken in Subversion as distributed with Leopard and a fix is not yet available. Bad news for Maven users wanting to use any of the SCM tools.

Hopefully a fix will be available either through an update or a version of Subversion that can be compiled from source, but in the mean time I put this shell script ahead of svn in my PATH:

Updated 15 Mar 08: Wendy pointed out you need to chop the username too. Now it’s even more hacky.


if [ "$1" = "--non-interactive" -o "$1" = "--username" ]; then

if [ "$1" = "--non-interactive" -o "$1" = "--username" ]; then

/usr/bin/svn "$@"

Mmm, hacky.

4 responses to “Working around –non-interactive problems in Leopard’s Subversion

  1. This doesn’t quite do it for the release process, which executes “svn –username wsmoak –non-interactive commit …”

  2. thanks man, you made my day

  3. This also applies to any svn built by macports.

  4. I needed the same thing but it broke when doing something like svn commit -m “blah blah blah” fubar.c snafu.h

    Basically the spaces in the message were being kicked out.

    So I wrote something that checked for spaces in the arguments and kept them.

    declare -a params
    space=" "
    for n in "$@" ; do
      if [ "$n" == "--non-interactive" ]; then
        # check with argument contains spaces, if so wrap it in cotton wool                                                                                                
        if [ "${n/$space/_}" != "${n}" ]; then
          params=(${params[@]} "'$n'")
          params=(${params[@]} $n)
    eval /usr/bin/svn-orig ${params[@]}

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s